- <!-- -->
- <!DOCTYPE>
- <a>
- <abbr>
- <acronym>
- <address>
- <applet>
- <area>
- <article>
- <aside>
- <audio>
- <b>
- <base>
- <basefont>
- <bdi>
- <bdo>
- <bgsound>
- <big>
- <blink>
- <blockquote>
- <body>
- <br>
- <button>
- <canvas>
- <caption>
- <center>
- <cite>
- <code>
- <col>
- <colgroup>
- <command>
- <comment>
- <data>
- <datalist>
- <dd>
- <del>
- <details>
- <dfn>
- <dialog>
- <dir>
- <div>
- <dl>
- <dt>
- <em>
- <embed>
- <fieldset>
- <figcaption>
- <figure>
- <font>
- <footer>
- <form>
- <frame>
- <frameset>
- <h1>
- <h2>
- <h3>
- <h4>
- <h5>
- <h6>
- <head>
- <header>
- <hgroup>
- <hr>
- <html>
- <i>
- <iframe>
- <img>
- <input>
- <ins>
- <isindex>
- <kbd>
- <keygen>
- <label>
- <legend>
- <li>
- <link>
- <listing>
- <main>
- <map>
- <mark>
- <marquee>
- <menu>
- <menuitem>
- <meta>
- <meter>
- <multicol>
- <nav>
- <nobr>
- <noembed>
- <noframes>
- <noindex>
- <noscript>
- <object>
- <ol>
- <optgroup>
- <option>
- <output>
- <p>
- <param>
- <picture>
- <plaintext>
- <pre>
- <progress>
- <q>
- <rp>
- <rt>
- <rtc>
- <ruby>
- <s>
- <samp>
- <script>
- <section>
- <select>
- <small>
- <source>
- <spacer>
- <span>
- <strike>
- <strong>
- <style>
- <sub>
- <summary>
- <sup>
- <table>
- <tbody>
- <td>
- <template>
- <textarea>
- <tfoot>
- <th>
- <thead>
- <time>
- <title>
- <tr>
- <track>
- <tt>
- <u>
- <ul>
- <var>
- <video>
- <wbr>
- <xmp>
Стандарт Unicode 3.0
Стандарт Unicode был разработан с целью создания единой кодировки символов всех современных и многих древних письменных языков. Каждый символ в этом стандарте кодируется 16 битами, что позволяет ему охватить несравненно большее количество символов, чем принятые ранее 7- и 8-битовые кодировки. Еще одним важным отличием Unicode от других систем кодировки является то, что он не только приписывает каждому символу уникальный код, но и определяет различные характеристики этого символа, например:
- тип символа (прописная буква, строчная буква, цифра, знак препинания и т. д.);
- атрибуты символа (отображение слева направо или справа налево, пробел, разрыв строки и т. д.);
- соответствующая прописная или строчная буква (для строчных и прописных букв соответственно);
- соответствующее числовое значение (для цифровых символов).
Подробное описание стандарта Unicode можно найти по адресу http://www.unicode.org/.
Весь диапазон кодов от 0 до FFFF разбит на несколько стандартных подмножеств, каждое из которых соответствует либо алфавиту какого-то языка, либо группе специальных символов, сходных по своим функциям. В приведенной ниже таблице содержится перечень всех подмножеств Unicode 3.0. В таблице использованы следующие сокращения:
- IPA = International Phonetical Alphabet = Международная фонетическая транскрипция;
- CJK = China, Japan & Korea = Китай, Япония и Корея.
Диапазон | Описание | Коды UTF-8 | ||
---|---|---|---|---|
00 7F | 00 127 | Basic Latin | Базовая латиница | 00 7F |
80 FF | 128 255 | Latin-1 Supplement | Латиница-1 дополнительная | C2 80 C3 BF |
100 17F | 256 383 | Latin Extended-A | Расширенная латиница-A | C4 80 C5 BF |
180 24F | 384 591 | Latin Extended-B | Расширенная латиница-B | C6 80 C9 8F |
250 2AF | 592 687 | IPA Extensions | Фонетические знаки | C9 90 CA AF |
2B0 2FF | 688 767 | Spacing Modifier Letters | Символы изменения пробела | CA B0 CB BF |
300 36F | 768 879 | Combining Diacritical Marks | Диакритические знаки | CC 80 CD AF |
370 3FF | 880 1023 | Greek | Греческое и коптское письмо | CD B0 CF BF |
400 4FF | 1024 1279 | Cyrillic | Кириллица | D0 80 D3 BF |
500 52F | 1280 1327 | резерв | D4 80 D4 AF | |
530 58F | 1328 1423 | Armenian | Армянское письмо | D4 B0 D6 8F |
590 — 5FF | 1424— 1535 | Hebrew | Ивритское письмо | D6 90 — D7 BF |
600 — 6FF | 1536— 1791 | Arabic | Арабское письмо | D8 80 — DB BF |
700 — 74F | 1792— 1871 | Syriac | Сирийское письмо | DC 80 — DD 8F |
750 — 77F | 1872— 1919 | резерв | DD 90 — DD BF | |
780 — 7BF | 1920— 1983 | Thaana | Тана (мальдивское письмо) | DE 80 — DE BF |
7C0 — 8FF | 1984— 2303 | резерв | DF 80 — E0 A3 BF | |
900 — 97F | 2304— 2431 | Devanagari | Деванагари | E0 A4 80 — E0 A5 BF |
980 — 9FF | 2432— 2559 | Bengali | Бенгали | E0 A6 80 — E0 A7 BF |
A00 — A7F | 2560— 2687 | Gurmukhi | Гурмукхи | E0 A8 80 — E0 A9 BF |
A80 — AFF | 2688— 2815 | Gujarati | Гуджарати | E0 AA 80 — E0 AB BF |
B00 — B7F | 2816— 2943 | Oriya | Ория | E0 AC 80 — E0 AD BF |
B80 — BFF | 2944— 3071 | Tamil | Тамили | E0 AE 80 — E0 AF BF |
C00 — C7F | 3072— 3199 | Telugu | Телугу | E0 B0 80 — E0 B1 BF |
C80 — CFF | 3200— 3327 | Kannada | Каннада | E0 B2 80 — E0 B3 BF |
D00 — D7F | 3328— 3455 | Malayalam | Малаялам | E0 B4 80 — E0 B5 BF |
D80 — DFF | 3456— 3583 | Sinhala | Сингальское письмо | E0 B6 80 — E0 B7 BF |
E00 — E7F | 3584— 3711 | Thai | Тайское (сиамское) письмо | E0 B8 80 — E0 B9 BF |
E80 — EFF | 3712— 3839 | Lao | Лаосское письмо | E0 BA 80 — E0 BB BF |
F00 — FFF | 3840— 4095 | Tibetan | Тибетское письмо | E0 BC 80 — E0 BF BF |
1000 — 109F | 4096— 4255 | Myanmar | Бирманское письмо | E1 80 80 — E1 82 9F |
10A0 — 10FF | 4256— 4351 | Georgian | Грузинское письмо | E1 82 A0 — E1 83 BF |
1100 — 11FF | 4352— 4607 | Hangul Jamo | Корейское письмо | E1 84 80 — E1 87 BF |
1200 — 137F | 4608— 4991 | Ethiopic | Эфиопское письмо | E1 88 80 — E1 8D BF |
1380 — 139F | 4992— 5023 | резерв | E1 8E 80 — E1 8E 9F | |
13A0 — 13FF | 5024— 5119 | Cherokee | Чероки письмо | E1 8E A0 — E1 8F BF |
1400 — 167F | 5120— 5759 | Unified Canadian Aboriginal Syllabics | Слоговое письмо алгонкинских народов | E1 90 80 — E1 99 BF |
1680 — 169F | 5760— 5791 | Ogham | Огамическое письмо | E1 9A 80 — E1 9A 9F |
16A0 — 16FF | 5792— 5887 | Runic | Руническое письмо | E1 9A A0 — E1 9B BF |
1700 — 177F | 5888— 6015 | резерв | E1 9C 80 — E1 9D BF | |
1780 — 17FF | 6016— 6143 | Khmer | Кхмерское письмо | E1 9E 80 — E1 9F BF |
1800 — 18AF | 6144— 6319 | Mongolian | Монгольское письмо | E1 A0 80 — E1 A2 AF |
18B0 — 1DFF | 6320— 7679 | резерв | E1 A2 B0 — E1 B7 BF | |
1E00 — 1EFF | 7680— 7935 | Latin Extended Additional | Дополнительная латиница | E1 B8 80 — E1 BB BF |
1F00 — 1FFF | 7936— 8191 | Greek Extended | Греческое расширенное письмо | E1 BC 80 — E1 BF BF |
2000 — 206F | 8192— 8303 | General Punctuation | Знаки пунктуации | E2 80 80 — E2 81 AF |
2070 — 209F | 8304— 8351 | Subscripts and Superscripts | Верхние и нижние индексы | E2 81 B0 — E2 82 9F |
20A0 — 20CF | 8352— 8399 | Currency Symbols | Денежные символы | E2 82 A0 — E2 83 8F |
20D0 — 20FF | 8400— 8447 | Combining Diacritical Marks for Symbols | Диакритические знаки для символов | E2 83 90 — E2 83 BF |
2100 — 214F | 8448— 8527 | Letterlike Symbols | Буквенные символы | E2 84 80 — E2 85 8F |
2150 — 218F | 8528— 8591 | Number Forms | Числовые символы | E2 85 90 — E2 86 8F |
2190 — 21FF | 8592— 8703 | Arrows | Стрелки | E2 86 90 — E2 87 BF |
2200 — 22FF | 8704— 8959 | Mathematical Operators | Математические операторы | E2 88 80 — E2 8B BF |
2300 — 23FF | 8960— 9215 | Miscellaneous Technical | Технические символы | E2 8C 80 — E2 8F BF |
2400 — 243F | 9216— 9279 | Control Pictures | Значки управляющих кодов | E2 90 80 — E2 90 BF |
2440 — 245F | 9280— 9311 | Optical Character Recognition | Оптическое распознавание образов | E2 91 80 — E2 91 9F |
2460 — 24FF | 9312— 9471 | Enclosed Alphanumerics | Буквы и цифры в кружочках | E2 91 A0 — E2 93 BF |
2500 — 257F | 9472— 9599 | Box Drawing | Символы рамок | E2 94 80 — E2 95 BF |
2580 — 259F | 9600— 9631 | Block Elements | Символы заполнения | E2 96 80 — E2 96 9F |
25A0 — 25FF | 9632— 9727 | Geometric Shapes | Геометрические символы | E2 96 A0 — E2 97 BF |
2600 — 26FF | 9728— 9983 | Miscellaneous Symbols | Различные значки | E2 98 80 — E2 9B BF |
2700 — 27BF | 9984— 10175 | Dingbats | Значки Dingbats | E2 9C 80 — E2 9E BF |
27C0 — 27FF | 10176— 10239 | резерв | E2 9F 80 — E2 9F BF | |
2800 — 28FF | 10240— 10495 | Braille Patterns | Шрифт Брайля | E2 A0 80 — E2 A3 BF |
2900 — 2E7F | 10496— 11903 | резерв | E2 A4 80 — E2 B9 BF | |
2E80 — 2EFF | 11904— 12031 | CJK Radicals Supplement | Дополнительные ключи к иероглифам | E2 BA 80 — E2 BB BF |
2F00 — 2FDF | 12032— 12255 | Kangxi Radicals | Кандзи (ключи к иероглифам) | E2 BC 80 — E2 BF 9F |
2FE0 — 2FEF | 12256— 12271 | резерв | E2 BF A0 — E2 BF AF | |
2FF0 — 2FFF | 12272— 12287 | Ideographic Description Characters | Описания идеограмм | E2 BF B0 — E2 BF BF |
3000 — 303F | 12288— 12351 | CJK Symbols and Punctuation | Идеографические символы и знаки препинания | E3 80 80 — E3 80 BF |
3040 — 309F | 12352— 12447 | Hiragana | Хирагана (японское письмо) | E3 81 80 — E3 82 9F |
30A0 — 30FF | 12448— 12543 | Katakana | Катакана (японское письмо) | E3 82 A0 — E3 83 BF |
3100 — 312F | 12544— 12591 | Bopomofo | Китайское слоговое письмо | E3 84 80 — E3 84 AF |
3130 — 318F | 12592— 12687 | Hangul Compatibility Jamo | Корейское совместимое письмо | E3 84 B0 — E3 86 8F |
3190 — 319F | 12688— 12703 | Kanbun | Камбун | E3 86 90 — E3 86 9F |
31A0 — 31BF | 12704— 12735 | Bopomofo Extended | Китайское расширенное слоговое письмо | E3 86 A0 — E3 86 BF |
31C0 — 31FF | 12736— 12799 | резерв | E3 87 80 — E3 87 BF | |
3200 — 32FF | 12800— 13055 | Enclosed CJK Letters and Months | Дальневосточные буквы и месяцы в кружочках | E3 88 80 — E3 8B BF |
3300 — 33FF | 13056— 13311 | CJK Compatibility | Дальневосточные совместимые символы | E3 8C 80 — E3 8F BF |
3400 — 4DB5 | 13312— 19893 | CJK Unified Ideographs Extension A | Унифицированные иероглифы, расширение А | E3 90 80 — E4 B6 B5 |
4DB6 — 4DFF | 19894— 19967 | резерв | E4 B6 B6 — E4 B7 BF | |
4E00 — 9FFF | 19968— 40959 | CJK Unified Ideographs | Унифицированные иероглифы | E4 B8 80 — E9 BF BF |
A000 — A48F | 40960— 42127 | Yi Syllables | Слоговое письмо ицзу (и) | EA 80 80 — EA 92 8F |
A490 — A4CF | 42128— 42191 | Yi Radicals | Ключи письма ицзу (и) | EA 92 90 — EA 93 8F |
A4D0 — ABFF | 42192— 44031 | резерв | EA 93 90 — EA AF BF | |
AC00 — D7A3 | 44032— 55203 | Hangul Syllables | Корейское слоговое письмо | EA B0 80 — ED 9E A3 |
D7A4 — D7FF | 55204— 55295 | резерв | ED 9E A4 — ED 9F BF | |
D800 — DB7F | 55296— 56191 | High Surrogates | Первый байт суррогатных символов | ED A0 80 — ED AD BF |
DB80 — DBFF | 56192— 56319 | High Private Use Surrogates | Первый байт личных суррогатных символов | ED AE 80 — ED AF BF |
DC00 — DFFF | 56320— 57343 | Low Surrogates | Второй байт суррогатных символов | ED B0 80 — ED BF BF |
E000 — F8FF | 57344— 63743 | Private Use Area | Область личных символов | EE 80 80 — EF A3 BF |
F900 — FAFF | 63744— 64255 | CJK Compatibility Ideographs | Совместимые иероглифы | EF A4 80 — EF AB BF |
FB00 — FB4F | 64256— 64335 | Alphabetic Presentation Forms | Декоративные варианты букв | EF AC 80 — EF AD 8F |
FB50 — FDFF | 64336— 65023 | Arabic Presentation Forms-A | Арабское декоративное письмо-A | EF AD 90 — EF B7 BF |
FE00 — FE1F | 65024— 65055 | резерв | EF B8 80 — EF B8 9F | |
FE20 — FE2F | 65056— 65071 | Combining Half Marks | Диакритические знаки половинной ширины | EF B8 A0 — EF B8 AF |
FE30 — FE4F | 65072— 65103 | CJK Compatibility Forms | Декоративные дальневосточные формы | EF B8 B0 — EF B9 8F |
FE50 — FE6F | 65104— 65135 | Small Form Variants | Малые варианты символов | EF B9 90 — EF B9 AF |
FE70 — FEFE | 65136— 65278 | Arabic Presentation Forms-B | Арабское декоративное письмо-B | EF B9 B0 — EF BB BE |
FEFF | 65279 | Zero Width No-break Space | Неразрывный пробел нулевой ширины | EF BB BF |
FF00 FFEF | 65280 65519 | Halfwidth and Fullwidth Forms | Символы полной и половинной ширины | EF BC 80 EF BF AF |
FFF0 FFFD | 65520 65533 | Specials | Специальные символы | EF BF B0 EF BF BD |
FFFE FFFF | 65534 65535 | не используются | 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. Поэтому, если вы не собираетесь писать Веб-страницы на языке шумеров или майя, можете смело отождествлять два эти формата.