UTF-1

редактировать
UTF-1
Язык (и)Международный
Текущий статусНепонятно, представляет в основном исторический интерес.
КлассификацияФормат преобразования Unicode, расширенный ASCII, кодирование переменной ширины
РасширяетUS-ASCII
Преобразует / кодируетISO 10646 (Unicode )
, преемникUTF-8
  • v
  • t

UTF-1 - метод преобразования ISO 10646 / Unicode в поток байтов. Его конструкция не обеспечивает самосинхронизации, что делает поиск подстрок и восстановление после ошибок сложно. Он повторно использует символы печати ASCII для многобайтовых кодировок, что делает его непригодным для некоторых целей (например, имена файлов Unix не могут содержать байтовое значение, используемое для косой черты). UTF-1 также медленно кодирует или декодирует из-за его использования деления и умножения на число, которое не является степенью 2. Из-за этих проблем он не получил распространения и был быстро заменен на UTF-8.

Дизайн

Подобно UTF-8, UTF-1 - это кодировка переменной ширины, которая обратно совместима с ASCII. Каждая кодовая точка Unicode представлена ​​либо одним байтом, либо последовательностью из двух, трех или пяти байтов. ASCII поддерживается с помощью однобайтовых кодировок, которые, в отличие от кодировок UTF-8, также включают не-ASCII кодовые точки с U + 0080по U + 009F.

UTF-1. не используйте управляющие коды C0 и C1 или пробел в многобайтовых кодировках: байт в диапазоне 0– 0x 20 или 0x7F – 0x9F всегда означает соответствующую кодовую точку. Этот дизайн с 66 защищенными символами пытался быть совместимым с ISO 2022.

UTF-1 использует арифметику «по модулю 190» (256 - 66 = 190). Для сравнения, UTF-8 защищает все 128 символов ASCII и требует для этого один бит и второй бит для самосинхронизации, в результате чего получается арифметика «по модулю 64» (8 - 2 = 6; 2 = 64). BOCU-1 защищает только минимальный набор, необходимый для MIME -совместимости (0x00, 0x07–0x0F, 0x1A – 0x1B и 0x20), что приводит к арифметике «по модулю 243» (256 - 13 = 243).

кодовая точкаUTF-8UTF-1
U + 007F7F7F
U+0080C2 8080
U+009FC2 9F9F
U+00A0C2 A0A0 A0
U + 00BFC2 BFA0 BF
U+00C0C3 80A0 C0
U + 00FFC3 BFA0 FF
U+0100C4 80A1 21
U+015DC5 9DA1 7E
U+015EC5 9EA1 A0
U+01BDC6 BDA1 FF
U+01BEC6 BEA2 21
U+07FFDF BFAA 72
U + 0800E0 A0 80AA 73
U+0FFFE0 BF BFB5 48
U + 1000E1 80 80B5 49
U+4015E4 80 95F5 FF
U+4016E4 80 96F6 21 21
U+D7FFED 9F BFF7 2F C3
U+E000EE 80 80F7 3A 79
U+F8FFEF A3 BFF7 5C 3C
U+FDD0EF B7 90F7 62 BA
U+FDEFEF B7 AFF7 62 D9
U + FEFF EF BB BFF7 64 4C
U+FFFDEF BF BDF7 65 AD
U+FFFEEF BF BEF7 65 AE
U+FFFFEF BF BFF7 65 AF
U+10000F0 90 80 80F7 65 B0
U+38E2DF0 B8 B8 ADFB FF FF
U+38E2EF0 B8 B8 AEFC 21 21 21 21
U+FFFFFF3 BF BF BFFC 21 37 B2 7A
U+100000F4 80 80 80FC 21 37 B2 7B
U + 10FFFFF4 8F BF BFFC 21 39 6E 6C
U+7FFFFFFFFD BF BF BF BF BFFD BD 2B B9 40

Хотя современный Unicode заканчивается на U + 10FFFF, и UTF-1, и UTF-8 были разработаны для кодирования всего 31 бита исходного универсального набора символов (UCS-4 ), а последняя запись в этой таблице показывает исходный окончательный код.

См. Также

Ссылки

Последняя правка сделана 2021-06-20 08:51:56
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте