UTF-EBCDIC — это кодировка символов , способная кодировать все 1 112 064 допустимых кодовых точки символов в Юникоде с использованием от одной до пяти однобайтовых (8-битных) кодовых единиц (в отличие от максимум четырех для UTF-8 ). [1] Он предназначен для поддержки 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 использует 101XXXXXXX вместо 10XXXXXX в качестве формата конечных байтов в многобайтовой последовательности. Поскольку он может содержать только 5 бит, а не 6, кодировка UTF-8-Mod кодовых точек выше U + 03FF больше, чем кодировка UTF-8.
Преобразование UTF-8-Mod оставляет данные в формате на основе ASCII (например, U+0041 «A» по-прежнему кодируется как 01000001), поэтому каждый байт проходит через обратимую (один-к-одному) справочную таблицу. для создания окончательной кодировки UTF-EBCDIC. Например, 01000001 в этой таблице соответствует 11000001; таким образом, кодировка U+0041 U+0041 (буква Unicode «A») UTF-EBCDIC равна 0xC1 (буква «A» EBCDIC).
Эта форма кодирования используется редко, даже на мэйнфреймах на базе EBCDIC, для которых она была разработана. Операционные системы для мэйнфреймов на базе IBM EBCDIC, такие как z/OS , обычно используют UTF-16 для полной поддержки Unicode. Например, IBM Db2 , 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 соответственно.
Oracle UTFE — это вариант базы данных Oracle Unicode 3.0 UTF-8 , аналогичный варианту UTF -8 CESU- 8, где дополнительные символы кодируются как два 4-байтовых символа, а не как один 4- или 5-байтовый символ. Он используется только на платформах EBCDIC. [2]
Вам необходимо выполнить поиск не более пяти байтов (семи байтов, если рассматривать полный диапазон в 31 бит ISO/IEC 10646) назад.