UTF-8
Unicode Transformation Format — формат преобразования Юникода) — кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста.
Текст, состоящий только из символов с номером меньше 128, при записи в
UTF-8 превращается в обычный текст ASCII. И наоборот, в тексте UTF-8 любой
байт со значением меньше 128 изображает символ ASCII с тем же кодом.
Остальные символы Юникода изображаются последовательностями длиной
от 2 до 6 байтов (реально только до 4 байт, поскольку использование
кодов больше 221 не планируется), в которых первый байт всегда
имеет вид 11xxxxxx
, а остальные — 10xxxxxx
.
Проще говоря, в формате UTF-8 символы латинского алфавита, знаки препинания и управляющие символы ASCII записываются кодами US-ASCII, a все остальные символы кодируются при помощи октетов со старшим битом 1. В результате, даже если программа не распознаёт Юникод, то английский язык и разметка всё равно будут отображаться правильно.
Формат UTF-8 был изобретён 2 сентября 1992 года Кеном Томпсоном и Робом Пайком. Сейчас стандарт UTF-8 официально закреплён в документах RFC 3629 и ISO/IEC 10646 Annex D.
Символы UTF-8 получаются из Unicode следующим образом:
Unicode UTF-8 0x00000000 — 0x0000007F: 0xxxxxxx 0x00000080 — 0x000007FF: 110xxxxx 10xxxxxx 0x00000800 — 0x0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx 0x00010000 — 0x001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx (теоретически возможны, но не включены в стандарт также:) 0x00200000 — 0x03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0x04000000 — 0x7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
В Юникоде для кириллицы выделено два раздела:
- Cyrillic (U+0400 — U+04FF)
- Cyrillic Supplement (U+0500 — U+052F).
Символы можно разделить на 3 группы:
- U+0400 — U+045F — это символы из ISO 8859-5, но перемещённые вверх на 864 позиции (36016).
- U+0460 — U+0489 — исторические буквы.
- U+048A — U+052F — это дополнительные буквы для разных языков, использующих кириллицу.
В Юникоде нет русских букв с ударением, но их можно делать составными, добавляя символ U+0301 («combining acute accent») после ударной гласной (например, ы́ э́ ю́ я́).
10.03.2007