CJKCodecs 1.0.3 릴리즈

한/중/일 파이썬 유니코드 코덱인 CJKCodecs 1.0.3이 릴리즈되었습니다. 1월 3일 맞추느라 좀 서둘러서 -O-;; (사소한 것에 집착;;)

변경사항은 대부분 일본어 지원에 관한 것이라 한국어 관련 인코딩에서는 iso-2022-kr 코덱이 MSB세팅된 글자에 대해 에러내게 바뀌었다는 것 밖에 없습니다.

다운로드는 http://cjkpython.i18n.org/#CJKCodecs 입니다.

(_ _);

11 thoughts on “CJKCodecs 1.0.3 릴리즈”

  1. CJK 유니코드라면…. CJK Unified와 CJK 컴패터빌러티 , CJK Ext-A영역등이 다 포함되어있는건가요? 그러니까 unicode 3.0에서 지원하는 한자 27000여자가 다 포함되어있는건가요? (파이썬은 잘 안 써봐서 잘 모르거든요.. 당연한거라면.. 죄송합니다.. ㅡ,ㅡ;;; ) 코덱 이라는게 뭔지 잘 모르겠습니다…. ㅡ,ㅡ;; 긁적긁적

  2. 유니코드를 기준으로 지원하는 건 아니구요. (유니코드 관련 작업은 표준 모듈인 unicodedata에서 지원) 레거시 인코딩들을 위한 것입니다.
    현재 지원하고 있는 중국어와 한국어 인코딩은 전부 Unicode 4.0기준의 BMP영역을 지원하고 있구요. 일본어 인코딩 중에 euc-jisx0213, shift-jisx0213, iso-2022-jp-3 코덱은 Unicode 3.3의 확장영역까지 모두 사용합니다. 즉, 레거시 인코딩의 표준 유니코드 매핑에서 지정한 유니코드 대역을 쓰는데, JIS X 0213과 HKSCS:2000같은 경우에는 BMP PUA를 쓰는 매핑은 채택하지 않고 확장영역을 사용하도록 하고 있습니다.

    파이썬에서 유니코드 코덱이란 스트링 자료형과 유니코드 자료형의 상호 변환을 위한 모듈을 뜻합니다. 즉, POSIX의 iconv와 비슷한 역할이죠 ^^; 단, iconv에 비해서 스트림 지원이나 에러핸들링 지원에서 좀 더 진보적인 기능을 지원하고 있습니다.

  3. 앗! 이렇게 상세한 설명을.. 감사감사…
    iconv와 비슷한 거구낭…
    iconv 첨 보구선… 앗.. unix에서도 이런것이…. 이런 생각을 잠시… 머신마다 charset이 다른 걸 보고는..
    ㅡ,ㅡ;;;;;
    감사 꾸벅 ^^;

  4. 문득 이런 생각이 들어서요..

    unicode 3.0에서 2바이트 유니코드의 경우는 전영역이 할당이 완료되어서.. close된것으로 알고있는데…(잘못 알고 있는건가요? 제가 알고 있는것들이 워낙 야매가 많아서리) Unicode 3.3까지 지원한다는 것은 4바이트 코드체계까지 지원한다는 말인가요? 아니면 euc-jp등에서 조금씩 볼수 있는 3바이트-Multibyte 를 지원한다는 것인가요?

    그리고, 확장영역이라면 KSC5601에서 euc-kr의코드에 확장한글(?)들을 구겨넣은 것처럼 쓰는 영역을 말하는 것인가요 아니면, 유니코드 2.0에서 나온 서러게이션(뭔지는 잘 모르겠으나, “서러게이션 2바이트 + 뒷의 2바이트”에서 뒷의 2바이트에 폰트등을 할당하는 방법으로 이해하고 있음) 영역할당하는 방법을 쓰나요?

    일본의 확장영역까지 모두 포함한다면(일본어 확장영역이 뭔지 모르겠어요 ㅡ,ㅡ;; ), 일본어에 대해서는 (발표는 했다지만) superCJK 4만여자의 한자까지 지원하는 코덱이란 말인가요?

    갑자기 궁금해진것이 많아진….. (하루만 지나면 잊어버릴텐데.. 쩝쩝…)

    늦었지만, 새해복많이 받으세요.. ^^;

  5. 완전히 Close된 건 아닙니다. 각각의 영역별로 약간씩 예비영역이 남아있기 때문에, 몇글자정도씩은 계속 버전마다 추가되고 있어요. 예를 들어 KS X 1001:2002에서 추가된 (우) 마크의 경우에는 Unicode 4.1에서 BMP에 추가될 것이 확실시됩니다. 일본어에서 계속 추가되는 히라가나들도 BMP에 추가되고 있죠.
    유니코드는 2-4-8 바이트 캐릭터셋이라 3바이트짜리는 없구요. 인코딩중에 UTF-8은 3바이트가 올 수 있습니다. Unicode 3.3까지 지원한다는 얘기는, Unicode 3.3에서 추가된 글자를 활용하여 매핑을 작성했다는 뜻입니다.
    예를 들어, JIS X 0213의 경우에는 Unicode에 추가되기 전에 임시로 유니코드 매핑을 PUA인 U+F300 영역을 사용하여 했었는데, Unicode 3.2와 3.3에서 추가된 글자들을 이용하면 PUA를 쓰지 않고도 매핑할 수 있기 때문에 거기까지 지원한다고 할 수 있습니다.

    확장영역은 U+10000이상의 글자들을 뜻하는데, UCS2로는 직접 표현되지 않는 BMP밖의 글자들을 확장영역으로 부릅니다. 말씀하신대로 서러게이트 영역을 이용하면 UCS2에서도 사용할 수 있고, UCS4에서는 바로 그냥 코드를 쓸 수도 있습니다.

    현재 일본어 코덱중 일부는 확장영역까지 모두 지원하기 때문에, SuperCJK 4만자 영역을 거의 골고루 지원하고 있다고 볼 수는 있지만, CJKCodecs는 단순히 레거시 인코딩과의 변환만 제공해 주기 때문에, CJKCodecs에서 제공하는 인코딩에서 매핑된 유니코드 글자가 아니라면, CJKCodecs에서 지원한다고 말씀드릴 수가 없어서 정확히 몇글자인지는 잘 모르겠네요.

    앞으로 CJKCodecs 1.1에서 HKSCS 지원이 들어가고 나면 진짜로 SuperCJK 전영역을 거의 포함하게 될지도 모르겠습니다. 🙂 HKSCS는 워낙에 확장영역에 배당받은 글자가 많다보니…

  6. 참, 그리고, 서러게이트 영역을 사용하면 앞 2바이트, 뒷 2바이트를 바로 쓰는게 아니라 앞글자 10비트, 뒷글자 10비트 해서 유효자리수는 총 20비트밖에 안 됩니다. 따라서, 65536(BMP 전체 영역) – 2048 (BMP중 서러게이트영역) + 1048576 (서러게이트 영역을 이용해 표현 가능한 유니코드 페이지 16까지) 하면 UCS2로 쓸 수 있는 코드포인트는 1112064 코드포인트가 됩니다.

  7. 헙.. 이렇게 상세한 설명을.. 감사감사..
    파이썬이 이렇게 빨리 unicode를 지원하다니 놀랐습니다..UCS4를 지원하는 언어가 있으리라고는 생각을.. SuperCJK는 발표만 했지… 쓸리가 없다.. 뭐 이런 생각을.. SuperCJK는 발표만 했지.. 폰트도 없다고 생각을 했는데… 히라가나가 계속 추가된다는 사실도.. 아침부터 감사..^^; 새해복많이 받으세요~(일주일간 마감인사.. 케케)
    ps: 위의 3바이트는 유니코드를 말씀드린게 아니라, euc-jp(iconv에서 EUC-JP.TXT에서 볼수 있는)테이블에 나타나는
    (0x8f) X (0xa2~0xfe) X (0xa1~0xfe) 로 표현되는 3바이트 멀티바이트 코드(대략 7000자)를 말한것이었습니다.. (지가 글을 잘 못써서… 잘못보신듯.. ^^;) 하긴 이런 3바이트 코드는 이미 추가되어있을듯한.. ^^;

Comments are closed.