Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

UTF-EBCDIC - это кодировка символов, используемая для представления символов Юникода . Он предназначен для поддержки EBCDIC , так что унаследованные приложения EBCDIC на мэйнфреймах могут без особого труда обрабатывать символы. Его преимущества для существующих систем на основе EBCDIC аналогичны преимуществам UTF-8 для существующих систем на основе ASCII . Подробная информация о UTF-EBCDIC описана в техническом отчете Unicode №16.

Чтобы создать версию серии кодовых точек Unicode в кодировке UTF-EBCDIC, сначала применяется кодировка на основе UTF-8 (известная в спецификации как UTF-8-Mod) (создавая то, что в спецификации называется последовательностью I8). Основное различие между этой кодировкой и UTF-8 заключается в том, что она позволяет кодовым точкам Unicode от U + 0080 до U + 009F ( управляющие коды C1 ) быть представлены в виде одного байта и, следовательно, позже сопоставлены с соответствующими управляющими кодами EBCDIC. Чтобы добиться этого, UTF-8-Mod использует 101XXXXX вместо 10XXXXXX в качестве формата завершающих байтов в многобайтовой последовательности. Поскольку он может содержать только 5 бит, а не 6, кодирование UTF-8-Mod кодовых точек выше U + 009F обычно больше, чем кодирование UTF-8.

Преобразование UTF-8-Mod оставляет данные в формате на основе ASCII (например, U + 0041 «A» по-прежнему кодируется как 01000001), поэтому каждый байт пропускается через обратимую (однозначную) таблицу поиска. для создания окончательной кодировки UTF-EBCDIC. Например, 01000001 в этой таблице соответствует 11000001; таким образом, кодировка UTF-EBCDIC для U + 0041 (Unicode "A") равна 0xC1 (EBCDIC "A").

Эта форма кодирования используется редко, даже на мэйнфреймах на основе EBCDIC, для которых она была разработана. Операционные системы мэйнфреймов на базе IBM EBCDIC, такие как z / OS , обычно используют UTF-16 для полной поддержки Unicode. Например, DB2 UDB , COBOL , PL / I , Java и набор инструментов IBM XML поддерживают UTF-16 на мэйнфреймах IBM.

Макет кодовой страницы [ править ]

В UTF-EBCDIC 160 символов с однобайтовой кодировкой (по сравнению со 128 в UTF-8). Как видно, однобайтовая часть похожа на IBM-1047 вместо IBM-37 из-за расположения квадратных скобок. CCSID 37 имеет [] в шестнадцатеричном формате BA и BB вместо шестнадцатеричных AD и BD соответственно.

  Письмо  Число  Пунктуация  Символ  Другой  Неопределенный

   Синие ячейки, содержащие большое однозначное число, являются начальными байтами для последовательности из такого количества байтов. Номер точки шестнадцатеричного кода без жирного шрифта, показанный в ячейке, является наименьшим значением символа, закодированным с использованием этого начального байта. Это значение может быть больше, чем значение, которое было бы получено путем следования за начальным байтом байтов продолжения, которые все равны 65 (шестнадцатеричный 0x41), если это приведет к недопустимой слишком длинной форме.

   Оранжевые ячейки с одной точкой - это байты продолжения. Шестнадцатеричное число, показанное после знака «+», является значением 5 добавляемых битов.

   Красные ячейки указывают на начальные байты (для последовательности из такого количества байтов), которые никогда не могут появиться в правильно закодированном тексте UTF-EBCDIC, потому что любое возможное продолжение приведет к недопустимой слишком длинной форме. Например, 0x76 отмечен красным, потому что даже 0x76 0x73 (который отображается в последовательность UTF-8-Mod 0xC2 0xBF) будет просто чрезмерно длинной кодировкой U + 005F (правильно закодирован как UTF-8-Mod 0x5F, UTF-EBCDIC 0x6D).

Oracle UTFE [ править ]

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

Преимущества:

  • Только набор символов Unicode для EBCDIC.
  • Длина типов SQL CHAR может быть указана в количестве символов.
  • Двоичный порядок столбцов SQL CHAR такой же, как двоичный порядок столбцов SQL NCHAR, если данные состоят из тех же дополнительных символов. Следовательно, эти столбцы одинаково сортируют идентичные строки. [1]

Недостатки:

  • Дополнительные символы занимают шесть байтов вместо четырех. Следовательно, необходимо преобразовать дополнительные символы.
  • UTFE не является стандартной кодировкой Unicode. Клиенты, которым требуется кодировка UTF-8, должны преобразовывать данные при извлечении и хранении. [1]

См. Также [ править ]

  • UTF-1
  • UTF-8
  • BOCU-1

Ссылки [ править ]

  1. ^ a b c Бэрд, Кэти; Чиба, Дэн; Чу, Уинсон; Фан, Джессика; Хо, Клэр; Закон, Саймон; Ли, Джефф; Линсли, Питер; Мацуда, Кени; Осрофт, Тамзин; Такеда, Шиге; Танака, Линус; Тозава, Макото; Трюте, Барри; Цудзимото, Маюми; У, Инь; Яу, Майкл; Ю, Тим; Ван, Чао; Вонг, Саймон; Чжан, Вейран; Чжэн, Лэй; Чжу, Ян; Мур, Валари (2002) [1996]. «Приложение A: Данные локали». Руководство по поддержке глобализации баз данных Oracle9i (PDF) (выпуск 2 (9.2), ред.). Корпорация Oracle . Оракул A96529-01. Архивировано (PDF) из оригинала на 2017-02-14 . Проверено 14 февраля 2017 .

Внешние ссылки [ править ]

  • В. С. Умамахесваран, Технический отчет Unicode № 16: определение UTF-EBCDIC (2002-04-16)