Язык (и) | Международный |
---|---|
Текущий статус | Непонятно, представляет в основном исторический интерес. |
Классификация | Формат преобразования Unicode, расширенный ASCII, кодирование переменной ширины |
Расширяет | US-ASCII |
Преобразует / кодирует | ISO 10646 (Unicode ) |
, преемник | UTF-8 |
|
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-8 | UTF-1 |
---|---|---|
U + 007F | 7F | 7F |
U+0080 | C2 80 | 80 |
U+009F | C2 9F | 9F |
U+00A0 | C2 A0 | A0 A0 |
U + 00BF | C2 BF | A0 BF |
U+00C0 | C3 80 | A0 C0 |
U + 00FF | C3 BF | A0 FF |
U+0100 | C4 80 | A1 21 |
U+015D | C5 9D | A1 7E |
U+015E | C5 9E | A1 A0 |
U+01BD | C6 BD | A1 FF |
U+01BE | C6 BE | A2 21 |
U+07FF | DF BF | AA 72 |
U + 0800 | E0 A0 80 | AA 73 |
U+0FFF | E0 BF BF | B5 48 |
U + 1000 | E1 80 80 | B5 49 |
U+4015 | E4 80 95 | F5 FF |
U+4016 | E4 80 96 | F6 21 21 |
U+D7FF | ED 9F BF | F7 2F C3 |
U+E000 | EE 80 80 | F7 3A 79 |
U+F8FF | EF A3 BF | F7 5C 3C |
U+FDD0 | EF B7 90 | F7 62 BA |
U+FDEF | EF B7 AF | F7 62 D9 |
U + FEFF | EF BB BF | F7 64 4C |
U+FFFD | EF BF BD | F7 65 AD |
U+FFFE | EF BF BE | F7 65 AE |
U+FFFF | EF BF BF | F7 65 AF |
U+10000 | F0 90 80 80 | F7 65 B0 |
U+38E2D | F0 B8 B8 AD | FB FF FF |
U+38E2E | F0 B8 B8 AE | FC 21 21 21 21 |
U+FFFFF | F3 BF BF BF | FC 21 37 B2 7A |
U+100000 | F4 80 80 80 | FC 21 37 B2 7B |
U + 10FFFF | F4 8F BF BF | FC 21 39 6E 6C |
U+7FFFFFFF | FD BF BF BF BF BF | FD BD 2B B9 40 |
Хотя современный Unicode заканчивается на U + 10FFFF, и UTF-1, и UTF-8 были разработаны для кодирования всего 31 бита исходного универсального набора символов (UCS-4 ), а последняя запись в этой таблице показывает исходный окончательный код.