Блоки Unicode
Unicode делит своё кодовое пространство на именованные блоки, каждый — это смежный диапазон, зарезервированный для одного сценария или одного семейства символов. Знание того, в каком блоке живёт символ, превращает тайну — почему эта вставка сломалась, почему это регулярное выражение её пропускает — в ответный вопрос.
Имена блоков — это идентификаторы, а не описания: они используются буквально в регулярном выражении как \p{Block=Cyrillic} и в каждом файле данных Unicode, поэтому они остаются на английском на каждом языке. Что переводится, это предложение рядом с ними.
Это тщательный отбор, а не все примерно 340 блоков — те, которые возникают при работе с текстом. Таблица ASCII охватывает первый блок полностью; эта страница начинается с того места, где заканчивается эта.
Латинский
5Латинский распределяется по нескольким блокам, поэтому его соответствие по блоку никогда полностью не работает.
| Диапазон | Блок | Что в этом | Образец |
|---|---|---|---|
| U+0000–U+007F | Basic Latin | ASCII, без изменений: латинские буквы, цифры, пунктуация, коды управления | A z 0 ? |
| U+0080–U+00FF | Latin-1 Supplement | Западноевропейские акценты, плюс £ § × ÷ и неразрывное пространство | é ñ ü × |
| U+0100–U+017F | Latin Extended-A | Центрально- и восточноевропейские акценты — č, ł, ő, ș | č ł ő š |
| U+0180–U+024F | Latin Extended-B | Дополнительные письма для африканских и фонетических ортографий | ƒ ǎ ȳ |
| U+1E00–U+1EFF | Latin Extended Additional | Вьетнамский и другие многоакцентные латинские письма | ạ ế ṛ |
Объединённые знаки и модификаторы
4Они прилагаются к персонажу перед ними и не имеют ширины самих по себе.
| Диапазон | Блок | Что в этом | Образец |
|---|---|---|---|
| U+0300–U+036F | Combining Diacritical Marks | Акценты, применяемые к предыдущему символуВторой, разложенный способ написания é. Нормализуйте на NFC, чтобы схлопнуть его. | ◌́ ◌̈ ◌̌ |
| U+02B0–U+02FF | Spacing Modifier Letters | Надстрочные буквы и IPA и знаки тона | ʰ ˈ ˚ |
| U+FE00–U+FE0F | Variation Selectors | Невидимые селекторы, выбирающие текст или представление эмодзиVS16 — это то, что превращает ✔ в эмодзи. Невидимо, но это считается. | |
| U+FE20–U+FE2F | Combining Half Marks | Половины знаков, охватывающих два символа |
Другие сценарии
8| Диапазон | Блок | Что в этом | Образец |
|---|---|---|---|
| U+0370–U+03FF | Greek and Coptic | Греческий и копты письма, которые делят его блок | α Ω π |
| U+0400–U+04FF | Cyrillic | Русский, украинский, сербский, болгарский и связанные алфавиты | д Я ж |
| U+0590–U+05FF | Hebrew | Еврейские письма, гласные точки и кантильные знаки | א ש |
| U+0600–U+06FF | Arabic | Арабские письма в их изолированных формах | ا ب ي |
| U+0900–U+097F | Devanagari | Хинди, санскрит, маратхи и связанные языки | क ह |
| U+0E00–U+0E7F | Thai | Тайские согласные, гласные и тональные знаки | ก ท |
| U+10A0–U+10FF | Georgian | Грузинский Mkhedruli | ა ბ |
| U+1F00–U+1FFF | Greek Extended | Политонический греческий — акценты классических текстов | ᾰ ῶ |
Пунктуация и числа
5Источник большинства невидимых символов, которые выживают при копировании.
| Диапазон | Блок | Что в этом | Образец |
|---|---|---|---|
| U+2000–U+206F | General Punctuation | Тире, кудрявые кавычки, многоточие — и большинство невидимых пространствU+200B ноль-ширины пространства и U+2060 соединитель слов живут здесь. | – — “ ” … |
| U+2070–U+209F | Superscripts and Subscripts | Надстрочные и подстрочные цифры и письма | ⁰ ⁴ ₂ |
| U+20A0–U+20CF | Currency Symbols | Знаки валют, которых нет в Latin-1 — €, ₴, ₹, ₺ | € ₴ ₺ |
| U+2100–U+214F | Letterlike Symbols | Символы построены из писем — ™, №, ℃, ℓ | ™ ℃ № |
| U+2150–U+218F | Number Forms | Вульгарные доли и римские цифры как отдельные символы | ⅓ ⅕ Ⅷ |
Символы и рисование
9| Диапазон | Блок | Что в этом | Образец |
|---|---|---|---|
| U+2190–U+21FF | Arrows | Стрелки в каждом направлении, одиночные и двойные | ← ↔ ⇒ |
| U+2200–U+22FF | Mathematical Operators | Математические операторы — ∀, ∑, ≠, ∞ | ∀ ∑ ≠ |
| U+2300–U+23FF | Miscellaneous Technical | Клавиатура и технические символы — ⌘, ⌥, ⌫, ⏎ | ⌘ ⌥ ⏎ |
| U+2500–U+257F | Box Drawing | Линии и углы для терминальных коробок и таблиц | ─ ┌ ╬ |
| U+2580–U+259F | Block Elements | Твёрдые и затенённые блоки, используемые для диаграмм терминала | █ ▓ ░ |
| U+25A0–U+25FF | Geometric Shapes | Квадраты, круги, треугольники и ромбы | ■ ● ▲ |
| U+2600–U+26FF | Miscellaneous Symbols | Погода, астрология, шахматы, карты и костюмы карт | ☀ ★ ♥ |
| U+2700–U+27BF | Dingbats | Украшения принтера — галочки, ножницы, звёзды | ✂ ✓ ➜ |
| U+2800–U+28FF | Braille Patterns | Все 256 узоры точек Брайля, используемые для графики терминала | ⠁ ⣿ |
CJK и полная ширина
6Формы полной ширины — отдельные символы от их близнецов ASCII, а не шрифт.
| Диапазон | Блок | Что в этом | Образец |
|---|---|---|---|
| U+3000–U+303F | CJK Symbols and Punctuation | Идеографическое пространство и пунктуация CJKU+3000 — это пространство полной ширины и не обрезается большинством правил пробелов. | 、 。 |
| U+3040–U+309F | Hiragana | Японский слоговой слог для родных слов и грамматики | あ ん |
| U+30A0–U+30FF | Katakana | Японский слоговой слог для иностранных слов и акцентов | ア ン |
| U+4E00–U+9FFF | CJK Unified Ideographs | Основной блок Han — почти 21 000 символов, общие для китайского, японского и корейского языков | 日 本 語 |
| U+AC00–U+D7AF | Hangul Syllables | Все 11 172 предварительно составленных корейских слоговКаждый также может быть написан как отдельный Jamo, который нормализация согласует. | 한 글 |
| U+FF00–U+FFEF | Halfwidth and Fullwidth Forms | Полная ширина копии ASCII и половинной ширины KatakanaA — это не A. Текст, вставленный из форм CJK, часто требует сворачивания в ASCII. | A ! ア |
Выше U+FFFF и специальные случаи
10Что-либо здесь занимает две единицы UTF-16, которые обуславливают ошибки длины строки.
| Диапазон | Блок | Что в этом | Образец |
|---|---|---|---|
| U+D800–U+DB7F | High Surrogates | Первая половина пары UTF-16 — никогда не допустимо самостоятельноОдин суррогат — это то, что строка разрезанная через эмодзи оставляет позади. | |
| U+DC00–U+DFFF | Low Surrogates | Вторая половина пары UTF-16 — никогда не допустимо самостоятельно | |
| U+E000–U+F8FF | Private Use Area | Неназначенный конструкцией для частных соглашенийГде шрифты значков помещают глифы. Бессмыслено без соответствующего шрифта. | |
| U+FFF0–U+FFFF | Specials | Символ замены и роды порядка байтовU+FFFD — это то, что вы видите, когда декодер отказался от байта. | � |
| U+1D400–U+1D7FF | Mathematical Alphanumeric Symbols | Полужирный, курсив, сценарий и двойной гарнитур алфавиты как символыИсточник 𝐟𝐚𝐤𝐞 𝐛𝐨𝐥𝐝 в именах социальных сетей. Невозможно проводить поиск. | 𝐀 𝓪 𝟙 |
| U+1F300–U+1F5FF | Miscellaneous Symbols and Pictographs | Большинство не-лицевых эмодзи — погода, объекты, места, символы | 🌍 🔥 📄 |
| U+1F600–U+1F64F | Emoticons | Лицевой эмодзи | 😀 🙂 |
| U+1F680–U+1F6FF | Transport and Map Symbols | Транспортные средства, дорожные и карты символы | 🚀 🛑 |
| U+1F900–U+1F9FF | Supplemental Symbols and Pictographs | Более поздние добавления эмодзи — более поздние лица, жесты, объекты | 🤖 🧠 |
| U+E0000–U+E007F | Tags | Невидимые символы меток, используемые в последовательностях флаговТакже вектор для невидимого текста, контрабандой внутри нормально выглядящей строки. |