UTF-16 (англ. Unicode Transformation Format) в информатике — один из способов кодирования символов из Unicode в виде последовательности 16-битных слов. Символы с кодами меньше 0x10000 () представляются как есть, а символы с кодами 0x10000—0x10FFFF — в виде последовательности двух 16-битных слов, первое из которых лежит в диапазоне 0xD800–0xDBFF, а второе — 0xDC00—0xDFFF. Ясно, что имеется как раз таких комбинаций.
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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) символов, то это число и было выбрано в качестве новой величины кодового пространства Юникода.
Т.к. в современных компьютерах размер байта равен 8 битам, то один «байт» кодировки UTF-16 приходится представлять последовательностью двух 8-битных байтов. Который из двух идёт впереди, старший или младший, зависит от порядка байтов. Систему, совместимую с процессорами x86, называют UTF-16LE (little endian), а с процессорами m68k и SPARC — UTF-16ВE (big endian).
В API Win32, распространённом в современных версиях операционной системы Microsoft Windows, имеется два способа представления текста: в форме традиционных 8-битных кодовых страниц, и в виде UTF-16.
В файловых системах NTFS, а также FAT с поддержкой длинных имён, имена файлов записываются в UTF-16LE.
Кодировки символов | |||
---|---|---|---|
Основы → | алфавит • текст ( файл • данные ) • набор символов • конверсия | ||
Исторические кодировки → | Докомп.: семафорная (Макарова) • Морзе • Бодо • МТК-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 • 852 • 855 • 866 «альт.» • ( МИК ) • ( НИИ ЭВМ ) | ||
Много- байтные |
Традиционные → | DBCS ( GB2312 ) • HTML | |
Unicode → | UTF-16 • UTF-8 • список символов ( кириллица ) | ||
Связанные темы → |
интерфейс пользователя • раскладка клавиатуры • локаль • перевод строки • шрифт • кракозябры • транслит • нестандартные шрифты • текст как изображение | Утилиты: iconv • recode |
Это заготовка статьи о компьютерах. Вы можете помочь проекту, исправив и дополнив её. Это примечание по возможности следует заменить более точным. |
UTF-16.