Чем китайский кодовый набор GB18030 отличается от Unicode?
Какие специальные методы требуются для работы с GB18030?
Существуют ли какие-либо библиотеки (с открытым исходным кодом) для работы с GB18030?





Согласно Статья в Википедии о GB18030, «GB18030 можно рассматривать как формат преобразования Unicode (т. Е. Кодирование всех кодовых точек Unicode), который поддерживает совместимость с устаревшим набором символов». Таким образом, все символы Unicode могут быть закодированы в GB18030, но они будут закодированы с помощью других байтовых последовательностей, чем те, которые были бы созданы с помощью UTF-8 или UTF-16. Обработка кодировки GB18030 не требует каких-либо дополнительных специальных методов, чем требуется для любой другой кодировки, отличной от Unicode.
Проект ICU - это библиотека с открытым исходным кодом (для C или Java), которая полностью поддерживает множество различных кодировок, включая GB18030. Информацию о преобразовании между разными кодировками с помощью ICU можно найти в здесь.
Спасибо за информацию. Я умеренно осведомлен об отделении интенсивной терапии; Однако я не знал, что он работал и с GB18030.
Википедия ошибается, говоря, что «GB18030 можно рассматривать как формат преобразования Unicode». Кто бы ни писал, не понимает смысла или "формата трансформации". Можно было бы считать это допустимым, если бы существовал алгоритмический способ сопоставления между GB18030 и Unicode без таблицы сопоставления. Если задействованы таблицы сопоставления, то это всего лишь две независимые кодировки, которые могут охватывать один и тот же набор символов. Так же, как KOI8-R не является «форматом преобразования» iso-8859-5, а Shift-JIS не является «форматом преобразования» EUC-JP
@MihaiNita: Согласно глоссарию Unicode, формат трансформации - это «отображение кодированной последовательности символов на уникальную последовательность кодовых единиц (обычно байтов)», а кодированная последовательность символов - это «упорядоченная последовательность из одной или нескольких кодовых точек». Пока существует сопоставление каждой кодовой точки Unicode с серией байтов, кажется, что это можно рассматривать как «формат преобразования Unicode».
Юникод - это открытый стандарт, то есть количество символов в нем со временем увеличивается (или изменяется). Поэтому я считаю, что в определенный момент снимки Unicode и GB18030 используют один и тот же набор символов. Но в долгосрочной перспективе они могут разойтись.
What special techniques are required for handling GB18030?
Самое главное, что нужно знать, это то, что, в отличие от UTF-8, GB18030 позволяет байтам ASCII встречаться в кодировке многобайтовых символов. (Например, 'ß' кодируется как байты 81 30 89 38, которые содержат кодировку ASCII '0' и '8'.) Это означает, что вы не можете использовать простую байтовую функцию find / index.
вы путаете наборы символов (например, Unicode) со схемами кодировки символов (например, GB18030, ISO Latin-1..15, UTF- [7,8,16,32]).