2008-10-21 42 views
11

中文GB18030代碼集與Unicode有何不同?GB18030與Unicode有何區別?

處理GB18030需要哪些特殊技術?

是否有用於處理GB18030的任何(開源)庫?

+3

您將字符集(如Unicode)與字符編碼方案(如GB18030,ISO Latin-1..15,UTF- [7,8,16,32])混淆。 – Sebastian 2014-06-13 11:16:50

回答

13

按照Wikipedia article on GB18030的規定,「GB18030可以被認爲是與傳統字符集保持兼容性的Unicode轉換格式(即所有Unicode代碼點的編碼)。」也就是說,所有的Unicode字符都可以用GB18030編碼,但它們將用不同於UTF-8或UTF-16生成的字節序列進行編碼。處理GB18030編碼不需要比任何其他非Unicode編碼所需的更多特殊技術。

ICU project是一個開放源碼庫(用於C或Java),完全支持許多不同的編碼,包括GB18030。關於在不同的編碼與ICU之間轉換的信息可以在here找到。

+0

感謝您的信息。我對ICU有適度的瞭解;雖然我不知道它也處理GB18030。 – 2008-10-23 03:36:35

12

處理GB18030需要哪些特殊技術?

要注意的最大的問題是,與UTF-8不同,GB18030允許ASCII字節在多字節字符的編碼中出現。 (例如,'ß'被編碼爲字節81 ,其中包含'0'和'8'的ASCII編碼。)這意味着您不能使用簡單的面向字節的find/index函數。