ArininAV

Приложение 3. Стандарт Unicode 3.0

Общее описание

Стандарт Unicode был разработан с целью создания единой кодировки символов всех современных и многих древних письменных языков. Каждый символ в этом стандарте кодируется 16 битами, что позволяет ему охватить несравненно большее количество символов, чем принятые ранее 7- и 8-битовые кодировки. Еще одним важным отличием Unicode от других систем кодировки является то, что он не только приписывает каждому символу уникальный код, но и определяет различные характеристики этого символа, например:

  • тип символа (прописная буква, строчная буква, цифра, знак препинания и т. д.);
  • атрибуты символа (отображение слева направо или справа налево, пробел, разрыв строки и т. д.);
  • соответствующая прописная или строчная буква (для строчных и прописных букв соответственно);
  • соответствующее числовое значение (для цифровых символов).

Подробное описание стандарта Unicode можно найти по адресу http://www.unicode.org/ Внешняя ссылка.

WDH+ См. также WDH+: О кодировках символов и Unicode и письменности мира.

Стандартные подмножества

Весь диапазон кодов от 0 до FFFF разбит на несколько стандартных подмножеств, каждое из которых соответствует либо алфавиту какого-то языка, либо группе специальных символов, сходных по своим функциям. В приведенной ниже таблице содержится перечень всех подмножеств Unicode 3.0. В таблице использованы следующие сокращения:

  • IPA = International Phonetical Alphabet = Международная фонетическая транскрипция;
  • CJK = China, Japan & Korea = Китай, Япония и Корея.
Таблица П3.1. Стандартные подмножества Unicode 3.0
Диапазон Описание Коды UTF-8
00 — 7F Basic Latin Базовая латиница 00 — 7F
80 — FF Latin-1 Supplement Латиница-1 дополнительная C2 80 — C3 BF
100 — 17F Latin Extended-A Расширенная латиница-A C4 80 — C5 BF
180 — 24F Latin Extended-B Расширенная латиница-B C6 80 — C9 8F
250 — 2AF IPA Extensions Фонетические знаки C9 90 — CA AF
2B0 — 2FF Spacing Modifier Letters Символы изменения пробела CA B0 — CB BF
300 — 36F Combining Diacritical Marks Диакритические знаки CC 80 — CD AF
370 — 3FF Greek Греческое и коптское письмо CD B0 — CF BF
400 — 4FF Cyrillic Кириллица D0 80 — D3 BF
500 — 52F резерв D4 80 — D4 AF
530 — 58F Armenian Армянское письмо D4 B0 — D6 8F
590 — 5FF Hebrew Ивритское письмо D6 90 — D7 BF
600 — 6FF Arabic Арабское письмо D8 80 — DB BF
700 — 74F Syriac Сирийское письмо DC 80 — DD 8F
750 — 77F резерв DD 90 — DD BF
780 — 7BF Thaana Тана (мальдивское письмо) DE 80 — DE BF
7C0 — 8FF резерв DF 80 — E0 A3 BF
900 — 97F Devanagari Деванагари E0 A4 80 — E0 A5 BF
980 — 9FF Bengali Бенгали E0 A6 80 — E0 A7 BF
A00 — A7F Gurmukhi Гурмукхи E0 A8 80 — E0 A9 BF
A80 — AFF Gujarati Гуджарати E0 AA 80 — E0 AB BF
B00 — B7F Oriya Ория E0 AC 80 — E0 AD BF
B80 — BFF Tamil Тамили E0 AE 80 — E0 AF BF
C00 — C7F Telugu Телугу E0 B0 80 — E0 B1 BF
C80 — CFF Kannada Каннада E0 B2 80 — E0 B3 BF
D00 — D7F Malayalam Малаялам E0 B4 80 — E0 B5 BF
D80 — DFF Sinhala Сингальское письмо E0 B6 80 — E0 B7 BF
E00 — E7F Thai Тайское (сиамское) письмо E0 B8 80 — E0 B9 BF
E80 — EFF Lao Лаосское письмо E0 BA 80 — E0 BB BF
F00 — FFF Tibetan Тибетское письмо E0 BC 80 — E0 BF BF
1000 — 109F Myanmar Бирманское письмо E1 80 80 — E1 82 9F
10A0 — 10FF Georgian Грузинское письмо E1 82 A0 — E1 83 BF
1100 — 11FF Hangul Jamo Корейское письмо E1 84 80 — E1 87 BF
1200 — 137F Ethiopic Эфиопское письмо E1 88 80 — E1 8D BF
1380 — 139F резерв E1 8E 80 — E1 8E 9F
13A0 — 13FF Cherokee Чероки письмо E1 8E A0 — E1 8F BF
1400 — 167F Unified Canadian Aboriginal Syllabics Слоговое письмо алгонкинских народов E1 90 80 — E1 99 BF
1680 — 169F Ogham Огамическое письмо E1 9A 80 — E1 9A 9F
16A0 — 16FF Runic Руническое письмо E1 9A A0 — E1 9B BF
1700 — 177F резерв E1 9C 80 — E1 9D BF
1780 — 17FF Khmer Кхмерское письмо E1 9E 80 — E1 9F BF
1800 — 18AF Mongolian Монгольское письмо E1 A0 80 — E1 A2 AF
18B0 — 1DFF резерв E1 A2 B0 — E1 B7 BF
1E00 — 1EFF Latin Extended Additional Дополнительная латиница E1 B8 80 — E1 BB BF
1F00 — 1FFF Greek Extended Греческое расширенное письмо E1 BC 80 — E1 BF BF
2000 — 206F General Punctuation Знаки пунктуации E2 80 80 — E2 81 AF
2070 — 209F Subscripts and Superscripts Верхние и нижние индексы E2 81 B0 — E2 82 9F
20A0 — 20CF Currency Symbols Денежные символы E2 82 A0 — E2 83 8F
20D0 — 20FF Combining Diacritical Marks for Symbols Диакритические знаки для символов E2 83 90 — E2 83 BF
2100 — 214F Letterlike Symbols Буквенные символы E2 84 80 — E2 85 8F
2150 — 218F Number Forms Числовые символы E2 85 90 — E2 86 8F
2190 — 21FF Arrows Стрелки E2 86 90 — E2 87 BF
2200 — 22FF Mathematical Operators Математические операторы E2 88 80 — E2 8B BF
2300 — 23FF Miscellaneous Technical Технические символы E2 8C 80 — E2 8F BF
2400 — 243F Control Pictures Значки управляющих кодов E2 90 80 — E2 90 BF
2440 — 245F Optical Character Recognition Оптическое распознавание образов E2 91 80 — E2 91 9F
2460 — 24FF Enclosed Alphanumerics Буквы и цифры в кружочках E2 91 A0 — E2 93 BF
2500 — 257F Box Drawing Символы рамок E2 94 80 — E2 95 BF
2580 — 259F Block Elements Символы заполнения E2 96 80 — E2 96 9F
25A0 — 25FF Geometric Shapes Геометрические символы E2 96 A0 — E2 97 BF
2600 — 26FF Miscellaneous Symbols Различные значки E2 98 80 — E2 9B BF
2700 — 27BF Dingbats Значки Dingbats E2 9C 80 — E2 9E BF
27C0 — 27FF резерв E2 9F 80 — E2 9F BF
2800 — 28FF Braille Patterns Шрифт Брайля E2 A0 80 — E2 A3 BF
2900 — 2E7F резерв E2 A4 80 — E2 B9 BF
2E80 — 2EFF CJK Radicals Supplement Дополнительные ключи к иероглифам E2 BA 80 — E2 BB BF
2F00 — 2FDF Kangxi Radicals Кандзи (ключи к иероглифам) E2 BC 80 — E2 BF 9F
2FE0 — 2FEF резерв E2 BF A0 — E2 BF AF
2FF0 — 2FFF Ideographic Description Characters Описания идеограмм E2 BF B0 — E2 BF BF
3000 — 303F CJK Symbols and Punctuation Идеографические символы и знаки препинания E3 80 80 — E3 80 BF
3040 — 309F Hiragana Хирагана (японское письмо) E3 81 80 — E3 82 9F
30A0 — 30FF Katakana Катакана (японское письмо) E3 82 A0 — E3 83 BF
3100 — 312F Bopomofo Китайское слоговое письмо E3 84 80 — E3 84 AF
3130 — 318F Hangul Compatibility Jamo Корейское совместимое письмо E3 84 B0 — E3 86 8F
3190 — 319F Kanbun Камбун E3 86 90 — E3 86 9F
31A0 — 31BF Bopomofo Extended Китайское расширенное слоговое письмо E3 86 A0 — E3 86 BF
31C0 — 31FF резерв E3 87 80 — E3 87 BF
3200 — 32FF Enclosed CJK Letters and Months Дальневосточные буквы и месяцы в кружочках E3 88 80 — E3 8B BF
3300 — 33FF CJK Compatibility Дальневосточные совместимые символы E3 8C 80 — E3 8F BF
3400 — 4DB5 CJK Unified Ideographs Extension A Унифицированные иероглифы, расширение А E3 90 80 — E4 B6 B5
4DB6 — 4DFF резерв E4 B6 B6 — E4 B7 BF
4E00 — 9FFF CJK Unified Ideographs Унифицированные иероглифы E4 B8 80 — E9 BF BF
A000 — A48F Yi Syllables Слоговое письмо ицзу (и) EA 80 80 — EA 92 8F
A490 — A4CF Yi Radicals Ключи письма ицзу (и) EA 92 90 — EA 93 8F
A4D0 — ABFF резерв EA 93 90 — EA AF BF
AC00 — D7A3 Hangul Syllables Корейское слоговое письмо EA B0 80 — ED 9E A3
D7A4 — D7FF резерв ED 9E A4 — ED 9F BF
D800 — DB7F High Surrogates Первый байт суррогатных символов ED A0 80 — ED AD BF
DB80 — DBFF High Private Use Surrogates Первый байт личных суррогатных символов ED AE 80 — ED AF BF
DC00 — DFFF Low Surrogates Второй байт суррогатных символов ED B0 80 — ED BF BF
E000 — F8FF Private Use Area Область личных символов EE 80 80 — EF A3 BF
F900 — FAFF CJK Compatibility Ideographs Совместимые иероглифы EF A4 80 — EF AB BF
FB00 — FB4F Alphabetic Presentation Forms Декоративные варианты букв EF AC 80 — EF AD 8F
FB50 — FDFF Arabic Presentation Forms-A Арабское декоративное письмо-A EF AD 90 — EF B7 BF
FE00 — FE1F резерв EF B8 80 — EF B8 9F
FE20 — FE2F Combining Half Marks Диакритические знаки половинной ширины EF B8 A0 — EF B8 AF
FE30 — FE4F CJK Compatibility Forms Декоративные дальневосточные формы EF B8 B0 — EF B9 8F
FE50 — FE6F Small Form Variants Малые варианты символов EF B9 90 — EF B9 AF
FE70 — FEFE Arabic Presentation Forms-B Арабское декоративное письмо-B EF B9 B0 — EF BB BE
FEFF Zero Width No-break Space Неразрывный пробел нулевой ширины EF BB BF
FF00 — FFEF Halfwidth and Fullwidth Forms Символы полной и половинной ширины EF BC 80 — EF BF AF
FFF0 — FFFD Specials Специальные символы EF BF B0 — EF BF BD
FFFE — FFFF не используются EF BF BE — EF BF BF

Формат UTF-8

Стандарт Unicode является основой для хранения и текста во многих современных компьютерных системах. Однако, он не совместим с большинством Интернет-протоколов, поскольку его коды могут содержать любые байтовые значения, а протоколы обычно используют байты 00 - 1F и FE - FF в качестве служебных. Для достижения совместимости были разработаны несколько форматов преобразования Unicode (UTFs, Unicode Transformation Formats), из которых на сегодня наиболее распространенным является UTF-8. Этот формат определяет следующие правила преобразования каждого кода Unicode в набор байтов (от одного до трех), пригодных для транспортировки Интернет-протоколами.

Диапазон Unicode Двоичный код символа Байты UTF-8 (двоичные)
0000 - 007F 00000000 0zzzzzzz 0zzzzzzzz
0080 - 07FF 00000yyy yyzzzzzz 110yyyyy 10zzzzzz
0800 - FFFF xxxxyyyy yyzzzzzz 1110xxxx 10yyyyyy 10zzzzzz

Здесь x,y,z обозначают биты исходного кода, которые должны извлекаться, начиная с младшего, и заноситься в байты результата справа налево, пока не будут заполнены все указанные позиции.

Подробное описание формата UTF-8 содержится в RFC 2279 Внешняя ссылка.

Формат UTF-16

Дальнейшее развитие стандарта Unicode связано с добавлением новых языковых плоскостей, т. е. символов в диапазонах 10000 - 1FFFF, 20000 - 2FFFF и т. д., куда предполагается включать кодировку для письменностей мертвых языков, не попавших в таблицу, приведенную выше. Для кодирования этих дополнительных символов был разработан новый формат UTF-16 (см. RFC 2781 Внешняя ссылка). Мы не приводим его подробного описания по единственной причине: для базовой языковой плоскости, т. е. для символов с кодами от 0000 до FFFF, он совпадает с Unicode. Поэтому, если вы не собираетесь писать Веб-страницы на языке шумеров или майя, можете смело отождествлять два эти формата.