Введение

Система кодирования символов Восточной Азии. Расширенный код Unix (EUC) — это многобайтовая система кодирования символов, используемая главным образом для японского, корейского и упрощенного китайского языков. Наиболее распространенные коды EUC — это кодировки переменной длины, в которых символ, принадлежащий к набору кодированных символов, соответствующему стандарту ISO/IEC 646 (например, ASCII), занимает один байт, а символ, принадлежащий к набору кодированных символов 94×94 (например, GB 2312), представлен двумя байтами. EUC CN для GB 2312 и EUC KR являются примерами таких двухбайтовых кодов EUC. EUC JP включает символы, представленные вплоть до трех байтов, включая начальный байт, в то время как один символ в EUC TW может занимать до четырех байтов. Современные приложения чаще используют UTF-8, который поддерживает все глифы кодов EUC и даже больше, и, как правило, более переносим, с меньшим количеством отклонений и ошибок, связанных с конкретными производителями. Однако EUC по-прежнему широко используется, особенно EUC KR в Южной Корее.

Формат фиксированной длины

Кодирование переменной длины на основе ISO 2022, описанное выше, иногда называют упакованным форматом EUC, который обычно именуется как EUC. Однако при внутренней обработке данных EUC может применяться формат преобразования с фиксированной длиной, называемый EUC complete two byte. При этом: только упакованный формат включен в стандарт кодирования WHATWG, используемый HTML5.

ЕСК-КН

EUC CN, кодирующий GB 2312 тем же способом, что и EUC CN, но отличающийся от структуры EUC расширенным диапазоном лидирующих байтов до 0x8C, добавлением 31 символа, выбранных IBM, в диапазоне 0x8CE0–0x8CFE, и добавлением 1880 пользовательских символов с лидирующими байтами от 0x8D до 0xA0. Кодовая страница IBM 1383 (CCSID 1383) состоит из однобайтовой кодовой страницы 367 и двухбайтовой кодовой страницы 1382 (CPGID 1382, также известной как CCSID 1382), которая отличается соответствием структуре EUC, добавлением 31 символа, выбранных IBM, в диапазоне 0xFEE0–0xFEFE, и включением только 1360 пользовательских символов, расположенных в позициях, не используемых GB 2312. Альтернативный CCSID 5479 используется для чистой кодовой страницы EUC CN: он использует CCSID 9574 в качестве двухбайтового набора, который использует CPGID 1382, но исключает символы, выбранные IBM, и пользовательские символы.

GBK и GB 18030

GBK — это расширение стандарта GB 2312. Он определяет расширенную форму кодировки EUC CN, способную представлять более широкий набор символов CJK, в основном взятых из Unicode 1.1, включая традиционные китайские символы и символы, используемые только в японском языке. Однако это не является истинной кодировкой EUC, поскольку байты ASCII могут встречаться в качестве последующих байтов (а байты C1, не ограничиваясь одиночными сдвигами, могут встречаться как стартовые или последующие байты) из-за необходимости большего кодировочного пространства. Варианты GBK реализованы в кодовой странице Windows 936 (кодовая страница Microsoft Windows для упрощенного китайского языка) и в кодовой странице IBM 1386. Символьная кодировка GB 18030 на основе Unicode определяет расширение GBK, способное кодировать весь диапазон Unicode. Однако Unicode, закодированный в GB 18030, является кодировкой переменной длины, которая может использовать до четырех байт на символ из-за еще большего необходимого кодировочного пространства. Являясь расширением GBK, он является надмножеством EUC CN, но сам по себе не является истинной кодировкой EUC. Будучи кодировкой Unicode, его репертуар идентичен репертуару других форматов преобразования Unicode, таких как UTF-8.

ОС Mac Китайский упрощенный

Другие варианты EUC CN, отклоняющиеся от механизма EUC, включают упрощенный китайский шрифт Mac OS (известный как кодовая страница 10008 или x mac chinesesimp). Он использует байты 0x80, 0x81, 0x82, 0xA0, 0xFD, 0xFE и 0xFF для символа U с диакритическим знаком умляут (ü), двух специальных символов метрик шрифта, неразрывного пробела, знака авторского права (©), знака товарного знака (™) и многоточия (…). Это отличается от того, что считается однобайтовым символом по сравнению с первым байтом двухбайтового символа, как в EUC (где 0xFD и 0xFE определены как стартовые байты), так и в GBK (где 0x81, 0x82, 0xFD и 0xFE определены как стартовые байты). Такое использование 0xA0, 0xFD, 0xFE и 0xFF соответствует варианту Shift JIS от Apple. Помимо этих изменений в диапазоне стартовых байтов, другой отличительной особенностью двухбайтовой части Mac OS Chinese Simplified является включение двух расширений к базовому набору GB 2312 80 в строках 6 и 8. Оба этих расширения включены в GB 18030 (преемник GB 2312).

Единый код хангуля

Распространенным расширением EUC KR является Unified Hangul Code (или ), который является кодовой страницей по умолчанию в Microsoft Windows. Microsoft присваивает ему номер кодовой страницы 949, а IBM – 1261 или 1363. Кодовая страница 949 от IBM – это другое, не связанное расширение EUC KR. Unified Hangul Code расширяет EUC KR, используя коды, не соответствующие структуре EUC, для включения дополнительных слоговых блоков, обеспечивая полное покрытие составных слоговых блоков, доступных в Johab и Unicode. Стандарт кодирования W3C/WHATWG, используемый HTML5, включает расширения Unified Hangul Code в свое определение EUC KR.

Корейский язык Mac OS (HangulTalk)

Другие кодировки, включающие EUC KR в качестве подмножества, включают корейский шрифт Mac OS (известный как кодовая страница 10003 или x mac korean). Многие из этих символов не имеют точных соответствий в Unicode, и программное обеспечение Apple отображает их различными способами: с помощью составных последовательностей, приблизительных соответствий с добавленным символом из приватной области использования в качестве модификатора для сохранения данных при обмене, или с помощью символов из приватной области использования. Apple также использует некоторые однобайтовые коды вне диапазона EUC KR для дополнительных символов: 0x80 для обязательного пробела, 0x81 для знака воны (₩), 0x82 для длинного тире (–), 0x83 для знака авторского права (©), 0x84 для широкого подчеркивания (_) и 0xFF для многоточия (…). Более поздние версии стандарта расширяют представление EUC символами, использующими двухбайтовые коды, не относящиеся к EUC, аналогично Unified Hangul Code.

EUC-TH

Хотя некоторые однобайтовые кодировки, такие как серия ISO/IEC 8859, технически соответствуют структуре EUC, их редко называют EUC. Однако она используется в Solaris как обозначение для TIS 620.