Чем GB18030 отличается от Unicode? - PullRequest
11 голосов
/ 22 октября 2008

Чем китайский кодовый набор GB18030 отличается от Unicode?

Какие специальные методы требуются для обращения с GB18030?

Существуют ли какие-либо (с открытым исходным кодом) библиотеки для обработки GB18030?

Ответы [ 2 ]

14 голосов
/ 22 октября 2008

Согласно статье Википедии о GB18030 , «GB18030 можно рассматривать как формат преобразования Unicode (т.е. кодирование всех кодовых точек Unicode), который поддерживает совместимость с устаревшим набором символов». Таким образом, все символы Unicode могут быть закодированы в GB18030, но они будут закодированы с помощью последовательностей байтов, отличных от того, что будет сгенерировано с помощью UTF-8 или UTF-16. Обработка кодировки GB18030 не требует более специальных методов, чем для любой другой кодировки, отличной от Unicode.

Проект ICU - это библиотека с открытым исходным кодом (для C или Java), которая имеет полную поддержку многих различных кодировок, включая GB18030. Информацию о преобразовании между различными кодировками с ICU можно найти здесь .

12 голосов
/ 12 июля 2010

Какие специальные методы требуются для обращения с GB18030?

Самая важная вещь, о которой следует знать, это то, что, в отличие от UTF-8, GB18030 позволяет байтам ASCII появляться в кодировании многобайтового символа. (Например, «ß» кодируется как байты 81 30 89 38 , которые содержат кодировку ASCII '0' и '8'.) t использовать простую байтово-ориентированную функцию find / index.

...