UTF-16
Материал из Википедии — свободной энциклопедии
UTF-16 (англ. Unicode Transformation Format) в информатике — один из способов кодирования символов из Unicode в виде последовательности 16-битных слов. Символы с кодами меньше 0x10000 (216) представляются как есть, а символы с кодами 0x10000—0x10FFFE — в виде последовательности двух 16-битных слов, первое из которых лежит в диапазоне 0xD800–0xDBFF, а второе — 0xDC00—0xDFFF. Легко видеть, что имеется как раз 210 * 210 = 220 таких комбинаций.
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| DC00 | … | DFFE | DFFF | |
|---|---|---|---|---|
| D800 | 010000 | … | 0103FE | 0103FF |
| D801 | 010400 | … | 0107FE | 0107FF |
| … | … | |||
| DBFF | 10FC00 | … | 10FFFE | |
Следует отметить, что по стандарту никакие символы не могут иметь коды собственно из диапазона 0xD800—0xDFFF (их 2048, они отмечены рыжим и голубым цветами на диаграмме), так что расшифровка кодировки всегда однозначна. Впрочем, в подавляющем большинстве случаев текст в UTF-16 является просто последовательностью символов из UCS-2 (BMP), т.к. символы Unicode после кода 0x10000 используются крайне редко.
[править] История появления
Первая версия Юникода (1991 г.) представляла собой 16-битную кодировку с фиксированной шириной символа; общее число разных символов было 216 (65 536). Во второй версии Юникода (1996 г.) было решено значительно расширить кодовую область; для сохранения совместимости с теми системами, где уже был реализован 16-битный Юникод, и была создана UTF-16. Область 0xD800—0xDFFF, отведённая для суррогатных пар, ранее принадлежала к области «символов для частного использования».
Поскольку в UTF-16 можно отобразить 220+216 - 2048 (1 112 064) символов, то это число и было выбрано в качестве новой величины кодового пространства Юникода.
[править] UTF-16LE и UTF-16ВE
Т.к. в современных компьютерах размер байта равен 8 битам, то один «байт» кодировки UTF-16 приходится представлять последовательностью двух 8-битных байтов. Который из двух идёт впереди, старший или младший, зависит от порядка байтов. Систему, совместимую с процессорами x86, называют UTF-16LE (little endian), а с процессорами m68k и SPARC — UTF-16ВE (big endian).
[править] UTF-16 в ОС Windows
В API Win32, распространённом в современных версиях операционной системы Microsoft Windows, имеется два способа представления текста: в форме традиционных 8-битных кодовых страниц, и в виде UTF-16.
В файловых системах NTFS, а также FAT с поддержкой длинных имён, имена файлов записываются в UTF-16LE.
[править] Ссылки
- Unicode Technical Note #12: Обработка UTF-16 (англ.)
- Unicode FAQ: В чём разница между UCS-2 и UTF-16? (англ.)
- RFC 2781: UTF-16, an encoding of ISO 10646
| Кодировки символов | |||
|---|---|---|---|
| Основы → | алфавит • текст ( файл • данные ) • набор символов • конверсия | ||
| Исторические кодировки → | Докомп.: семафорная (Макарова) • Морзе • Бодо • МТК-2 | Комп.: 6 бит • УПП • RADIX-50 • EBCDIC ( ДКОИ-8 ) • КОИ-7 • ISO 646 | |
| совре- менное 8-битное представ- ление |
символы → | ASCII ( управляющие • печатные ) | не-ASCII ( псевдографика ) |
| 8бит. код.стр. | Разные → Кириллица: КОИ-8 • ГОСТ 19768-87 • MacCyrillic | ||
| ISO 8859 → | 1(лат.) 2 3 4 5(кир.) 6 7 8 9 10 11 12 13 14 15(€) 16 | ||
| Windows → | 1250 1251(кир.) 1252 1253 1254 1255 1256 1257 1258 | WGL4 | ||
| IBM&DOS → | 437 • 850 • 855 • 866 «альт.» ( МИК ) | ||
| Много- байтные |
Традиционные → | DBCS ( GB2312 ) • HTML | |
| Unicode → | UTF-16 • UTF-8 • список символов ( кириллица ) | ||
| Связанные темы → |
интерфейс пользователя • раскладки клавиатур • локаль • перевод строки • шрифт • крокозябры • транслит | Утилиты: iconv • recode | |
| Это незавершённая статья о компьютерах. Вы можете помочь проекту, исправив и дополнив её. |

