Компьютерная интернациональность
Первая форма — UTF-8 ориентирована на среды, в которых преобладает побайтовая передача информации, например для работы в UNIX-системах или в Интернете. Чтобы исключить нулевые байты, в UTF-8 предусмотрена более сложная схема представления Unicode-символов. В этой схеме для указания конкретного Unicode-символа используются цепочки кодов переменной длины от одного до шести байт. При этом авторы Unicode’a старались вносить как можно меньше изменений в то, что уже существует. Так, коды первых 128 символов UTF-8 (от 00 до 7F в шестнадцатеричном представлении) имеют те же значения, что и коды первых 128 символов ASCII-таб-лицы, а коды символов основных языков находятся в нижней части общей таблицы, чтобы в большинстве случаев можно было бы обойтись двухбайтовыми кодами (см. табл. 1 «Коды UTF-8»).
Как видим, в такой форме представления ни один из байтов никогда не бывает равен нулю. Правда, за это приходится платить более сложной схемой кодирования/декодирования и, в общем случае, более длинной цепочкой кодов — до шести байт.
Вторая форма — UTF-16 используется в тех случаях, когда нужен компромисс между эффективностью и экономным расходованием ресурсов. UTF-16
выделяет каждому символу по 16 бит (два байта). Если двух байт недостаточно то выделяется пара из двух 16-битовых блоков (2×2 байта).
Наконец, третья форма — UTF-32 используется тогда, когда память не является критическим ресурсом, а важна эффективность и универсальность. В таких случаях каждому символу выделяется фиксированное пространство в 32 бита (четыре байта).
Диапазон кодов от 0 до Г очень велик, и пока что до конца не решено, ™~ кими символами его заполнять. Поэтому сначала навели порядок в том, что уже есть,— выделили начальный участок общей таблицы от 0 до 216 кодов и распределили уже известные символы по этому пространству.
Этот начальный диапазон кодов и соответствующих символов назвали Ба-3oebiMMHozoH3bi4HbiMypoeHeM(BaseMultilingualPlane, BMP).
Символам кириллицы достался диапазон от U+0400 до U+04FF в шестнад-цатеричном представлении или от 1024 до 1279 в десятичном, то есть первый байт, указывающий на принадлежность символа кириллице, равен 04, второй байт представляет собой собственно код символа.