2008-10-21 4 views
11

중국어 GB18030 코드 세트는 유니 코드와 어떻게 다릅니 까?GB18030은 유니 코드와 어떻게 다른가요?

GB18030을 처리 할 때 특별한 기술이 필요합니까?

GB18030을 처리하기위한 (공개 소스) 라이브러리가 있습니까?

+3

문자 세트 (예 : 유니 코드)와 문자 인코딩 체계 (예 : GB18030, ISO Latin-1..15, UTF- [7,8,16,32])를 혼동합니다. – Sebastian

답변

13

Wikipedia article on GB18030에 따르면 "GB18030은 레거시 문자 세트와의 호환성을 유지하는 유니 코드 변환 형식 (즉, 모든 유니 코드 코드 포인트의 인코딩)으로 간주 될 수 있습니다." 즉, 모든 유니 코드 문자는 GB18030에서 인코딩 될 수 있지만 UTF-8 또는 UTF-16에서 생성되는 것과 다른 바이트 시퀀스로 인코딩됩니다. GB18030 인코딩을 처리 할 때 다른 비 유니 코드 인코딩에 필요한 것보다 더 특별한 기술이 필요하지 않습니다.

ICU project은 GB18030을 비롯한 다양한 인코딩을 완벽하게 지원하는 오픈 소스 라이브러리 (C 또는 Java 용)입니다. ICU로 다른 인코딩 간의 변환에 대한 정보는 here에서 확인할 수 있습니다.

+0

정보를 제공해 주셔서 감사합니다. 나는 ICU를 적당히 알고있다; 그래도 GB18030을 처리한다는 사실을 알지 못했습니다. –

+1

위키 백과는 "GB18030은 유니 코드 변환 형식으로 간주 될 수 있습니다"라는 말은 잘못되었습니다. 누구든지 그것을 썼다는 의미 또는 "변환 형식"을 이해하지 못합니다. 매핑 테이블없이 GB18030과 유니 코드 사이를 매핑하는 알고리즘 방식이 있다면 유효하다고 생각할 수도 있습니다. 매핑 테이블이 포함 된 경우이 두 테이블은 동일한 문자 집합을 포함 할 수있는 두 개의 독립적 인 인코딩입니다. KOI8-R은 iso-8859-5의 "변환 형식"이 아니며 Shift-JIS는 EUC-JP –

+4

의 "변환 형식"이 아닙니다 @MihaiNita : 유니 코드 용어집에 따르면 [변환 형식] (http://unicode.org/glossary/#transformation_format)는 "코드화 된 문자 시퀀스를 코드 단위 (일반적으로 바이트)의 고유 한 시퀀스로 매핑"및 [코드화 된 문자 시퀀스] (http://unicode.org/glossary/# coded_character_sequence)는 "하나 이상의 코드 포인트의 순서화 된 시퀀스"입니다. 일련의 바이트에 대한 각 유니 코드 코드 포인트의 매핑이있는 한 그것은 "유니 코드 변환 형식"으로 간주 될 수 있습니다. –

12

GB18030을 처리 할 때 특별한 기술이 필요합니까?

가장 중요한 점은 UTF-8과 달리 GB18030은 멀티 바이트 문자 인코딩에서 ASCII 바이트가 발생할 수 있다는 것입니다. 예를 들어 'ß'는 ASCII 인코딩 '0'과 '8'을 포함하는 바이트로 012 바이트로 인코딩됩니다. 즉, 간단한 바이트 지향적 인 find을 사용할 수 없습니다/index 기능.