Введение

Кодировка символов для Unicode, совместимая с EBCDIC.

UTF EBCDIC – это кодировка символов, способная кодировать все 1 112 064 допустимых кодовых точек Unicode, используя от 1 до 5 байт (в отличие от максимального значения в 4 байта для UTF-8). Она разработана с учетом совместимости с EBCDIC, чтобы устаревшие приложения EBCDIC на мейнфреймах могли обрабатывать символы без значительных затруднений. Ее преимущества для существующих систем на основе EBCDIC аналогичны преимуществам UTF-8 для существующих систем на основе ASCII. Подробности о UTF EBCDIC описаны в Техническом отчете Unicode № 16. Для создания UTF EBCDIC-кодированной версии последовательности кодовых точек Unicode сначала применяется кодировка на основе UTF-8 (известная в спецификации как UTF-8 Mod), которая создает последовательность I8. Основное отличие этой кодировки от UTF-8 заключается в том, что она позволяет представлять кодовые точки Unicode (коды управления C1) одним байтом, который затем может быть сопоставлен с соответствующими кодами управления EBCDIC. Для этого UTF-8 Mod использует вместо в качестве формата для последующих байтов в многобайтовой последовательности. Поскольку этот формат может содержать только 5 бит вместо 6, кодировка UTF-8 Mod кодовых точек выше будет больше, чем кодировка UTF-8. Преобразование UTF-8 Mod оставляет данные в формате, основанном на ASCII (например, "A" по-прежнему кодируется как ), поэтому каждый байт проходит через обратимую (один к одному) таблицу поиска для получения окончательной кодировки UTF EBCDIC. Например, в этой таблице сопоставляется с ; таким образом, кодировка UTF EBCDIC символа (буква "A" в Unicode) – (буква "A" в EBCDIC). UTF EBCDIC используется редко, даже на мейнфреймах, основанных на EBCDIC, для которых она была разработана. Операционные системы IBM на основе EBCDIC, такие как z/OS, обычно используют UTF-16 для полной поддержки Unicode. Например, IBM Db2, COBOL, PL/I, Java и IBM XML toolkit поддерживают UTF-16 на IBM мейнфреймах.

Размещение кода страницы

В UTF EBCDIC имеется 160 символов с однобайтовым кодированием (по сравнению с 128 в UTF-8). Как видно, однобайтовая часть соответствует IBM 1047, а не IBM 37, из-за расположения квадратных скобок. В CCSID 37 квадратные скобки находятся по адресам 0xBA и 0xBB, а не 0xAD и 0xBD соответственно.

Oracle UTFE

Oracle UTFE — это вариант базы данных Oracle Unicode 3.0, использующий кодировку UTF-8, аналогичный варианту CESU-8, в котором дополнительные символы кодируются как два 4-байтовых символа вместо одного 4- или 5-байтового символа. Он применяется исключительно на платформах EBCDIC.