- PVSM.RU - https://www.pvsm.ru -

Этот восхитительный Юникод

Этот восхитительный Юникод - 1

Перед вами обновляемый список [1] самых замечательных «вкусностей» Юникода, а также пакетов и ресурсов

Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница на 127 символа. К счастью, появился Юникод и унифицировал коммуникации. Стандарт Юникод 8.0 охватывает более 120 000 символов из более 129 письменностей. И современные, и древние, и до сих пор не расшифрованные. Юникод поддерживает текст слева направо и справа налево, наложение символов и включает самые разные культурные, политические, религиозные символы и эмодзи. Юникод потрясающе человечен, а его возможности сильно недооцениваются.

Содержание

Краткое введение

Какие символы входят в Стандарт Юникод?

Стандарт Юникод определяет коды для символов основных современных языков. Это европейские алфавитные письменности, ближневосточные письменности справа налево и многие письменности Азии.

Стандарт также содержит знаки пунктуации, диакритические знаки, математические символы, технические символы, стрелки, дингбаты, эмодзи и т. д. Он предоставляет коды для диакритических знаков, изменяющих знаки символов, такие как тильда (~). Они используются в сочетании с основными для представления акцентированных символов (например, ñ). В целом, Юникод версии 9.0 предоставляет коды для 128 172 символов из мировых алфавитов, наборов идеограмм и коллекций символов.

Большинство символов общего пользования помещаются в первые 64K кодовых точек, область кодового пространства, которая называется основной многоязычной плоскостью, или BMP для краткости. Есть ещё шестнадцать других дополнительных плоскостей, доступных для кодирования других символов, с более чем 850 000 неиспользуемых кодовых точек. Они могут пригодиться для добавления новых символов в будущие версии стандарта.

Стандарт Юникод также резервирует кодовые точки для частного использования. Вендоры или конечные пользователи могут назначать их в своих собственных системах для своих символов или использовать со специализированными шрифтами. На BMP находится 6400 кодовых точек для частного использования и ещё 131 068 дополнительных кодовых точек частного использования, если 6400 недостаточно для конкретных приложений.

Кодировки символов Юникода

Стандарты кодирования символов определяют не только идентичность каждого символа и его числовое значение или кодовую точку, но и то, как это значение представлено в битах.

Стандарт Юникод определяет три формы кодирования, которые позволяют передавать одни и те же данные: это байт, слово и двойное слово (то есть 8, 16 или 32 бит на единицу кода). Все три формы кодируют один и тот же общий набор символов и могут быть эффективно преобразованы друг в друга без потери данных. Консорциум Юникод полностью одобряет использование любой из этих форм кодирования в качестве согласованного способа реализации Стандарта Юникод.

UTF-8 популярен для HTML и подобных протоколов. UTF-8 — это способ преобразования всех символов Юникода в кодировку переменной байтовой длины. Его преимущество в том, что символы Юникода, соответствующие знакомому набору ASCII, имеют те же байтовые значения, что и ASCII, а символы Юникода, преобразованные в UTF-8, могут использоваться с большим количеством существующего программного обеспечения без серьёзной доработки ПО.

UTF-16 популярен во многих средах, где необходимо сбалансировать эффективный доступ к символам с экономичным хранением. Он достаточно компактен, и все часто используемые символы помещаются в один 16-битный кодовый блок, в то время как все остальные символы доступны через пары 16-битных кодовых блоков.

UTF-32 полезен там, где объём памяти не вызывает беспокойства, но требуется доступ к символам по единому коду фиксированной ширины. Здесь каждый символ Юникода кодируется в одном 32-разрядном кодовом блоке.

Все три формы кодирования требуют для каждого символа не более 4 байт (или 32 бит).

Поговорим о цифрах

Набор символов Юникода разделён на 17 основных сегментов (плоскостей), которые далее делятся на блоки. В каждой плоскости есть место для 65 536 (216) кодовых точек, что создаёт в сумме 1 114 112 кодовых точек. Есть две «плоскости частного использования» (№ 16 и № 17), которые выделяются для использования на усмотрение компаний/пользователей. В них 131 072 кодовые точки.

Название Диапазон
1. Основная многоязычная плоскость (от U+0000 до U+FFFF)
2. Дополнительная многоязычная плоскость (от U+10000 до U+1FFFF)
3. Дополнительная идеографическая плоскость (от U+20000 до U+2FFFF)
4. Третичная идеографическая плоскость (от U+30000 до U+3FFFF)
5. Плоскость 5 (не используется) (от U+40000 до U+4FFFF)
6. Плоскость 6 (не используется) (от U+50000 до U+5FFFF)
7. Плоскость 7 (не используется) (от U+60000 до U+6FFFF)
8. Плоскость 8 (не используется) (от U+70000 до U+7FFFF)
9. Плоскость 9 (не используется) (от U+80000 до U+8FFFF)
10. Плоскость 10 (не используется) (от U+90000 до U+9FFFF)
11. Плоскость 11 (не используется) (от U+A0000 до U+AFFFF)
12. Плоскость 12 (не используется) (от U+B0000 до U+BFFFF)
13. Плоскость 13 (не используется) (от U+C0000 до U+CFFFF)
14. Плоскость 14 (не используется) (от U+D0000 до U+DFFFF)
15. Специализированная дополнительная плоскость (от U+E0000 до U+EFFFF)
16. Дополнительная область для частного использования — A (от U+F0000 до U+FFFFF)
17. Дополнительная область для частного использования — B (от U+100000 до U+10FFFF)

Первая плоскость называется основной многоязычной плоскостью или BMP. Она содержит кодовые точки от U+0000 до U+FFFF, то есть наиболее часто используемые символы. Остальные шестнадцать плоскостей (U+010000 → U+10FFFF) называются дополнительными или астральными.

Суррогатные пары UTF-16

Символы вне основной плоскости, как тетраграмматон, означающий центр (U+1D306), можно закодировать в UTF-16 только двумя 16-битными кодовыми единицами: 0xD834 0xDF06. Это называется суррогатной парой. Обратите внимание, что суррогатная пара представляет только один символ.

Первая кодовая единица суррогатной пары всегда находится в диапазоне от 0xD800 до 0xDBFF и называется верхней частью пары.

Вторая кодовая единица суррогатной пары всегда находится в диапазоне от 0xDC00 до 0xDFFF и называется нижней частью пары.

Матиас Байненс [33]

Суррогатная пара: представление одного абстрактного символа, состоящего из последовательности двух 16-разрядных кодовых единиц, где первое значение пары является верхней суррогатной кодовой единицей, а второе — нижней суррогатной кодовой единицей. Суррогатные пары используются только в UTF-16.

Unicode 8.0 Глава 3.8 − Суррогаты [34]

Вычисление суррогатных пар

Юникодовский символ «Куча дерьма» (U+1F4A9) в UTF-16 придётся кодировать как суррогатную пару, т. е. два суррогата. Чтобы преобразовать любую кодовую точку в суррогатную пару, используйте такой алгоритм (на JavaScript). Имейте в виду, что мы используем шестнадцатеричную нотацию.

 var High_Surrogate = function(Code_Point){ return Math.floor((Code_Point - 0x10000) / 0x400) + 0xD800 };
 var Low_Surrogate  = function(Code_Point){ return (Code_Point - 0x10000) % 0x400 + 0xDC00 };

 // Reverses The Conversion
 var Code_Point = function(High_Surrogate, Low_Surrogate){
	return (High_Surrogate - 0xD800) * 0x400 + Low_Surrogate - 0xDC00 + 0x10000;
 };

 > var codepoint = 0x1F4A9;   					// 0x1F4A9 == 128169
 > High_Surrogate(codepoint).toString(16)
 "d83d"  										// 0xD83D == 55357
 > Low_Surrogate(codepoint).toString(16)
 "dca9"  										// 0xDCA9 == 56489

 > String.fromCharCode(  High_Surrogate(codepoint) , Low_Surrogate(codepoint) );
  ""
> String.fromCodePoint(0x1F4A9)
  ""
 > 'ud83dudca9'
  ""

Композиция и декомпозиция

Юникод включает в себя механизм для изменения формы символа, который значительно расширяет поддерживаемый набор глифов. Это касается комбинируемых диакритических знаков. Они вставляются после главного знака. На один и тот же знак можно наложить несколько комбинируемых диакритических знаков. Юникод также содержит предварительно составленные версии большинства таких комбинаций для нормального использования.

Некоторые последовательности символов также можно представить в виде одного символа, который называется предварительно составленным символом (precomposed character), он же составной символ (composite character). Например, символ [ü] можно закодировать как единственную кодовую точку U+00FC или как базовый символ U+0075 (u), за которым следует несамостоятельный знак U+0308 (¨). Стандарт Юникод кодирует составные символы для совместимости с установленными стандартами, такими как Latin 1, который включает в себя множество составных символов, таких как [ü] и [ñ].

Составные символы можно разложить для согласованности или анализа. Например, при сортировке имён по алфавиту символ [ü] можно разложить на [u], за которым следует несамостоятельный знак [¨]. После такой декомпозиции алгоритму проще работать с последовательностью символов. Это позволяет упростить сортировку в языках, где модификаторы символов не влияют на алфавитный порядок. Стандарт Юникод устанавливает порядок декомпозиции [35] для всех составных символов. Он также определяет формы нормализации для обеспечения уникальных представлений символов.

Мифы о Юникоде

Из слайдов презентации Марка Дэвиса «Мифы Юникода» [36].

  • Юникод — это просто 16-битный код. — Некоторые ошибочно полагают, что Юникод — это просто 16-битный код, в котором каждый символ занимает 16 бит, и поэтому существует 65 536 возможных символов. На самом деле это не совсем так. Это самый распространённый миф о Юникоде, так что если вы тоже так думали раньше, не расстраивайтесь.
  • Можно взять для своих нужд любую кодовую точку, которая не используется. — Нет. Когда-нибудь это место займёт другой символ. Вместо этого используйте плоскости для частного использования или области без символов в каждой плоскости, где по стандарту не будет никаких символов.
  • Каждая кодовая точка Юникода представляет символ. — Нет. Есть много точек без символов (FFFE, FFFF, 1FFFE и др.) Кроме того, суррогатные кодовые точки, приватные и неиспользуемые кодовые точки, а также управляющие/форматирующие «символы» (RLM, ZWNJ и др.)
  • В Юникоде заканчивается место. — Если бы оно заполнялось линейно, то закончилось бы в 2140 году. Но место не заполняется линейно. Планы на будущее см. здесь [37].
  • Все знаки сопоставляются один к одному. — Нет. Возможны варианты:
    • Один ко многим: (β → SS)
    • С учётом контекста: (…Σ ←→ …ς и в то же время …ΣΤ… ←→ …στ…)
    • С учётом локали: (I ←→ ı и в то же время İ ←→ i)

Прикладные кодировки Юникода

Тип кодирования Пример
Объект HTML (десятичный) Этот восхитительный Юникод - 2
Объект HTML (hex) Этот восхитительный Юникод - 3
Управляющий код URL %F0%9F%96%96
UTF-8 (hex) 0xF0 0x9F 0x96 0x96 (f09f9696)
UTF-8 (бинарный) 11110000:10011111:10010110:10010110
UTF-16/UTF-16BE (hex) 0xD83D 0xDD96 (d83ddd96)
UTF-16LE (hex) 0x3DD8 0x96DD (3dd896dd)
UTF-32/UTF-32BE (hex) 0x0001F596 (0001f596)
UTF-32LE (hex) 0x96F50100 (96f50100)
Восьмеричная управляющая последовательность 360237226226

Исходный код

Тип кодирования Пример
JavaScript u1F596
JSON u1F596
C u1F596
C++ u1F596
Java u1F596
Python u1F596
Perl x{1F596}
Ruby u{1F596}
CSS 1F596

Список удивительных символов

Этот восхитительный Юникод - 4


Совместный доступ к документу может быстро превратить редактирование в письменную рэп-битву, ведущуюся все более запутанной расстановкой управляющих от U+202a до U+202e

Специальные символы

Консорциум Unicode опубликовал диаграмму общей пунктуации [38], где можете найти более подробную информацию.

Символ Название Описание
'' U+FEFF Неразрывный пробел нулевой ширины (Byte Order Mark — BOM) Обладает важным свойством однозначности при изменении порядка байтов. У него также нулевая ширина и невидимость. В неподходщем программном обеспечении (например, интерпретаторе PHP) это приводит к всевозможным примерам забавного поведения.
'￯' 'uFFEF' Обратный BOM Не приравнивается к символу, кроме начала текста.
'​' 'u200B' Неразрывное пространство нулевой ширины Символ без внешнего вида и без эффекта, кроме предотвращения образования лигатур.
' ' U+00A0 Неразрывный пробел Заставляет соседние символы держаться вместе. Хорошо известен как   в HTML.
'­' U+00AD Мягкий дефис В HTML работает как пространство нулевой ширины, но при встрече с концом строки (и только в этом случае) показывает дефис.
'‍' U+200D Знак нулевой ширины (с объединением) Заставляет соединяться соседние символы (например, арабские символы или поддерживаемые эмодзи). Можно использовать для последовательно скомбинированных эмодзи.
'⁠' U+2060 Соединитель слов То же самое, что и U+00A0, но совершенно невидимый. Хорошо подходит для @font-face в Twitter.
' ' U+1680 Огам знак пробела Отмечает пробел, который выглядит как тире. Отлично паодходит, чтобы приблизить программистов к безумию: 1 + 2 === 3.
';' U+037E Греческий знак вопроса Похож на точку с запятой. Также забавный способ троллить разработчиков.
'‭' U+202D Изменяет направление текста слева-направо.
'‮'‭ ‭ U+202E Изменяет направление текста справа-налево.
'ꓸ' U+A4F8 Лису буква tone mya ti Двойник для точки.
'ꓹ' U+A4F9 Лису буква tone na po Двойник для запятой.
'ꓼ' U+A4FC Лису буква tone mya na Двойник для точки с запятой.
'ꓽ' U+A4FD Лису буква tone mya jeu Двойник для двоеточия.
'︀' Вариантные селекторы (от U+FE00 до U+FE0F и от U+E0100 до U+E01EF) Блок из 256 символов нулевой ширины, которые обладают свойством ID_Continue, то есть могут использоваться в именах переменных (не первая буква). Что делает их особенными, так это то, что над ними проходит курсор мыши, поскольку они объединяют символы, в отличие от большинства других символов нулевой ширины.
'ᅟ' U+115F Заполнитель хангыль чхосон По сути, заполняет пространство. Визуализируется как символ нулевой ширины (невидимый), если явно не поддерживается при визуализации. Обозначен как ID_Start
'ᅠ' U+1160 Заполнитель чунсон Возможно, заполняет пространство? Визуализируется как символ нулевой ширины (невидимый), если явно не поддерживается при визуализации. Обозначен как ID_Start
'ㅤ' U+3164 Заполнитель хангыль В целом, заполняет пространство. Визуализируется как символ нулевой ширины (невидимый), если явно не поддерживается при визуализации. Обозначен как ID_Start

Подожди… что я только что прочитал?

Идентификаторы переменных могут включать пробелы!

U+3164 Заполнитель хангыль отображается в виде широкого пробела. Если символ явно не поддерживается в рендеринге [39], то отображается как полностью невидимый (и не занимает место, т. е. «нулевой ширины»). Это означает, что вы никогда не увидите уродливый символ замены символов (�).

Я пока не уверен, почему U+3164 указано вести себя таким образом. Интересно, что U+3164 был добавлен в Юникод в версии 1.1 (1993) — так что у специалистов Консорциума было много времени, чтобы его продумать. Во всяком случае, вот несколько примеров.

> var ᅟ = 'foo';
undefined
> ᅟ
'foo'


> var ㅤ= alert;
undefined
> var foo = 'bar'
undefined
> if ( foo ===ㅤ`baz` ){} 	// alert
undefined


> var varㅤfooㅤu{A60C}ㅤπ = 'bar';
undefined
> varㅤfooㅤꘌㅤπ
'bar'

**Примечание:** я тестировал рендеринг U+3164 на Ubuntu и OS X со следующими параметрами: `node`, `php`, `ruby`, `python3.5`, `scala`, `vim`, `cat`, `chrome`+`github gist'. Atom — единственная система, которая терпит неудачу, (некорректно) отображая пустые поля. Мне ещё предстоит проверить код в Emacs и Sublime. Насколько я понимаю, Консорциум Юникод не будет переназначать или переименовывать символы или кодовые точки, но его можно убедить изменить свойства символов, таких как ID_Start и ID_Continue.

Модификаторы

Объединитель нулевой ширины (ZWJ) является непечатным символом в компьютерном наборе некоторых сложных шрифтов, таких как арабский или любой индийский шрифт. При помещении между двумя символами, которые в противном случае не были бы связаны, ZWJ заставляет их печататься в объединённой форме.

Разъединитель нулевой ширины (ZWNJ) — это непечатный символ в компьютерных наборах письменностей с лигатурами. При размещении между двумя символами, которые в противном случае были бы соединены в лигатуру, ZWNJ заставляет их печататься в их окончательной и первоначальной формах, соответственно. Действует как пробел, но используется в том случае, когда желательно удерживать слова рядом друг с другом или соединить слово с его морфемой.

> 'a'
 "a"

> 'au{0308}'
 "ä"

> 'au{20DE}u{0308}'
 "a⃞̈"

> 'au{20DE}u{0308}u{20DD}'
 "a⃞̈⃝"

// Modifying Invisible Characters
> 'u{200E}u{200E}u{200E}u{200E}u{200E}u{200E}u{200E}u{200E}u{200E}u{200E}'
 "‎‎‎‎‎‎‎‎‎‎"

> 'u{200E}u{200E}u{200E}u{200E}u{200E}u{200E}u{200E}u{200E}u{200E}u{200E}'.length
 10

Коллизии преобразований в верхнем регистре

Символ Кодовая точка Результат
ß 0x00DF SS
ı 0x0131 I
ſ 0x017F S
0xFB00 FF
0xFB01 FI
0xFB02 FL
0xFB03 FFI
0xFB04 FFL
0xFB05 ST
0xFB06 ST

Коллизии преобразований в нижнем регистре

Символ Кодовая точка Результат
0x212A k

Причуды и устранение неполадок

Автор: m1rko

Источник [445]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/spetsifikatsii/344221

Ссылки в тексте:

[1] список: https://eng.getwisdom.io/awesome-unicode/

[2] Краткое введение: #1

[3] Какие символы входят в Стандарт Юникод?: #2

[4] Кодировки символов Юникода: #3

[5] Поговорим о цифрах: #4

[6] Суррогатные пары UTF-16: #5

[7] Вычисление суррогатных пар: #6

[8] Композиция и декомпозиция: #7

[9] Мифы о Юникоде: #8

[10] Прикладные кодировки Юникода: #9

[11] Исходный код: #10

[12] Список удивительных символов: #11

[13] Специальные символы: #12

[14] Идентификаторы переменных могут включать пробелы!: #13

[15] Модификаторы: #14

[16] Коллизии преобразований в верхнем регистре: #15

[17] Коллизии преобразований в нижнем регистре: #16

[18] Причуды и устранение неполадок: #17

[19] Сопоставления одного ко многим: #18

[20] Отличные пакеты и библиотеки: #19

[21] Эмодзи: #20

[22] Многообразие: #21

[23] Переменные и методы с креативными названиями: #22

[24] Скрипт рекурсивного переименования тегов HTML: #23

[25] Шрифты Юникода: #24

[26] Дополнительные ресурсы: #25

[27] Более глубокое исследование самого Юникода: #26

[28] Общая карта: #27

[29] Карта основной многоязычной плоскости: #28

[30] Блоки Юникода: #29

[31] Принципы Стандарта Юникод: #30

[32] Версии Юникода: #31

[33] Матиас Байненс: https://mathiasbynens.be/notes/javascript-encoding#surrogate-pairs

[34] Unicode 8.0 Глава 3.8 − Суррогаты: https://unicode.org/versions/Unicode8.0.0/ch03.pdf#page=47

[35] порядок декомпозиции: https://unicode.org/versions/Unicode8.0.0/ch03.pdf#page=44

[36] «Мифы Юникода»: https://macchiato.com/slides/UnicodeMyths.pdf

[37] здесь: https://www.unicode.org/roadmaps/

[38] диаграмму общей пунктуации: https://www.unicode.org/charts/PDF/U2000.pdf

[39] поддерживается в рендеринге: https://unicode.org/faq/unsup_char.html

[40] ES Reverser: https://github.com/mathiasbynens/esrever

[41] U+00DF: https://codepoints.net/U+00DF?lang=en

[42] U+0130: https://codepoints.net/U+0130?lang=en

[43] U+0149: https://codepoints.net/U+0149?lang=en

[44] U+01F0: https://codepoints.net/U+01F0?lang=en

[45] U+0390: https://codepoints.net/U+0390?lang=en

[46] U+03B0: https://codepoints.net/U+03B0?lang=en

[47] U+0587: https://codepoints.net/U+0587?lang=en

[48] U+1E96: https://codepoints.net/U+1E96?lang=en

[49] U+1E97: https://codepoints.net/U+1E97?lang=en

[50] U+1E98: https://codepoints.net/U+1E98?lang=en

[51] U+1E99: https://codepoints.net/U+1E99?lang=en

[52] U+1E9A: https://codepoints.net/U+1E9A?lang=en

[53] U+1E9E: https://codepoints.net/U+1E9E?lang=en

[54] U+1F50: https://codepoints.net/U+1F50?lang=en

[55] U+1F52: https://codepoints.net/U+1F52?lang=en

[56] U+1F54: https://codepoints.net/U+1F54?lang=en

[57] U+1F56: https://codepoints.net/U+1F56?lang=en

[58] U+1F80: https://codepoints.net/U+1F80?lang=en

[59] U+1F81: https://codepoints.net/U+1F81?lang=en

[60] U+1F82: https://codepoints.net/U+1F82?lang=en

[61] U+1F83: https://codepoints.net/U+1F83?lang=en

[62] U+1F84: https://codepoints.net/U+1F84?lang=en

[63] U+1F85: https://codepoints.net/U+1F85?lang=en

[64] U+1F86: https://codepoints.net/U+1F86?lang=en

[65] U+1F87: https://codepoints.net/U+1F87?lang=en

[66] U+1F88: https://codepoints.net/U+1F88?lang=en

[67] U+1F89: https://codepoints.net/U+1F89?lang=en

[68] U+1F8A: https://codepoints.net/U+1F8A?lang=en

[69] U+1F8B: https://codepoints.net/U+1F8B?lang=en

[70] U+1F8C: https://codepoints.net/U+1F8C?lang=en

[71] U+1F8D: https://codepoints.net/U+1F8D?lang=en

[72] U+1F8E: https://codepoints.net/U+1F8E?lang=en

[73] U+1F8F: https://codepoints.net/U+1F8F?lang=en

[74] U+1F90: https://codepoints.net/U+1F90?lang=en

[75] U+1F91: https://codepoints.net/U+1F91?lang=en

[76] U+1F92: https://codepoints.net/U+1F92?lang=en

[77] U+1F93: https://codepoints.net/U+1F93?lang=en

[78] U+1F94: https://codepoints.net/U+1F94?lang=en

[79] U+1F95: https://codepoints.net/U+1F95?lang=en

[80] U+1F96: https://codepoints.net/U+1F96?lang=en

[81] U+1F97: https://codepoints.net/U+1F97?lang=en

[82] U+1F98: https://codepoints.net/U+1F98?lang=en

[83] U+1F99: https://codepoints.net/U+1F99?lang=en

[84] U+1F9A: https://codepoints.net/U+1F9A?lang=en

[85] U+1F9B: https://codepoints.net/U+1F9B?lang=en

[86] U+1F9C: https://codepoints.net/U+1F9C?lang=en

[87] U+1F9D: https://codepoints.net/U+1F9D?lang=en

[88] U+1F9E: https://codepoints.net/U+1F9E?lang=en

[89] U+1F9F: https://codepoints.net/U+1F9F?lang=en

[90] U+1FA0: https://codepoints.net/U+1FA0?lang=en

[91] U+1FA1: https://codepoints.net/U+1FA1?lang=en

[92] U+1FA2: https://codepoints.net/U+1FA2?lang=en

[93] U+1FA3: https://codepoints.net/U+1FA3?lang=en

[94] U+1FA4: https://codepoints.net/U+1FA4?lang=en

[95] U+1FA5: https://codepoints.net/U+1FA5?lang=en

[96] U+1FA6: https://codepoints.net/U+1FA6?lang=en

[97] U+1FA7: https://codepoints.net/U+1FA7?lang=en

[98] U+1FA8: https://codepoints.net/U+1FA8?lang=en

[99] U+1FA9: https://codepoints.net/U+1FA9?lang=en

[100] U+1FAA: https://codepoints.net/U+1FAA?lang=en

[101] U+1FAB: https://codepoints.net/U+1FAB?lang=en

[102] U+1FAC: https://codepoints.net/U+1FAC?lang=en

[103] U+1FAD: https://codepoints.net/U+1FAD?lang=en

[104] U+1FAE: https://codepoints.net/U+1FAE?lang=en

[105] U+1FAF: https://codepoints.net/U+1FAF?lang=en

[106] U+1FB2: https://codepoints.net/U+1FB2?lang=en

[107] U+1FB3: https://codepoints.net/U+1FB3?lang=en

[108] U+1FB4: https://codepoints.net/U+1FB4?lang=en

[109] U+1FB6: https://codepoints.net/U+1FB6?lang=en

[110] U+1FB7: https://codepoints.net/U+1FB7?lang=en

[111] U+1FBC: https://codepoints.net/U+1FBC?lang=en

[112] U+1FC2: https://codepoints.net/U+1FC2?lang=en

[113] U+1FC3: https://codepoints.net/U+1FC3?lang=en

[114] U+1FC4: https://codepoints.net/U+1FC4?lang=en

[115] U+1FC6: https://codepoints.net/U+1FC6?lang=en

[116] U+1FC7: https://codepoints.net/U+1FC7?lang=en

[117] U+1FCC: https://codepoints.net/U+1FCC?lang=en

[118] U+1FD2: https://codepoints.net/U+1FD2?lang=en

[119] U+1FD3: https://codepoints.net/U+1FD3?lang=en

[120] U+1FD6: https://codepoints.net/U+1FD6?lang=en

[121] U+1FD7: https://codepoints.net/U+1FD7?lang=en

[122] U+1FE2: https://codepoints.net/U+1FE2?lang=en

[123] U+1FE3: https://codepoints.net/U+1FE3?lang=en

[124] U+1FE4: https://codepoints.net/U+1FE4?lang=en

[125] U+1FE6: https://codepoints.net/U+1FE6?lang=en

[126] U+1FE7: https://codepoints.net/U+1FE7?lang=en

[127] U+1FF2: https://codepoints.net/U+1FF2?lang=en

[128] U+1FF3: https://codepoints.net/U+1FF3?lang=en

[129] U+1FF4: https://codepoints.net/U+1FF4?lang=en

[130] U+1FF6: https://codepoints.net/U+1FF6?lang=en

[131] U+1FF7: https://codepoints.net/U+1FF7?lang=en

[132] U+1FFC: https://codepoints.net/U+1FFC?lang=en

[133] U+FB00: https://codepoints.net/U+FB00?lang=en

[134] U+FB01: https://codepoints.net/U+FB01?lang=en

[135] U+FB02: https://codepoints.net/U+FB02?lang=en

[136] U+FB03: https://codepoints.net/U+FB03?lang=en

[137] U+FB04: https://codepoints.net/U+FB04?lang=en

[138] U+FB05: https://codepoints.net/U+FB05?lang=en

[139] U+FB06: https://codepoints.net/U+FB06?lang=en

[140] U+FB13: https://codepoints.net/U+FB13?lang=en

[141] U+FB14: https://codepoints.net/U+FB14?lang=en

[142] U+FB15: https://codepoints.net/U+FB15?lang=en

[143] U+FB16: https://codepoints.net/U+FB16?lang=en

[144] U+FB17: https://codepoints.net/U+FB17?lang=en

[145] PhantomScript: https://github.com/jagracey/PhantomScript

[146] mimic: https://github.com/reinderien/mimic

[147] python-ftfy: https://github.com/LuminosoInsight/python-ftfy

[148] vim-troll-stopper: https://github.com/vim-utils/vim-troll-stopper

[149] Диаграмма эмодзи от Консорциума Юникод: https://www.unicode.org/emoji/charts/full-emoji-list.html

[150] Emojipedia: https://emojipedia.org/

[151] emojitracker: https://emojitracker.com/

[152] World Translation Foundation: https://www.emojifoundation.com/

[153] Can I Emoji?: https://caniemoji.com/android-2/

[154] Как зарегистрировать доменное имя с эмодзи: https://www.name.com/blog/how-tos/2015/12/want-an-emoji-url-this-is-how-you-register-one/

[155] отчёт: https://unicode.org/reports/tr51/#Diversity

[156] составные последовательности эмодзи: https://www.unicode.org/emoji/charts/emoji-zwj-sequences.html

[157] ID_START: https://codepoints.net/search?IDS=1

[158] ID_CONTINUE: https://codepoints.net/search?IDC=1

[159] юникодовские классы CSS: https://davidwalsh.name/unicode-css-classes

[160] https://en.wikipedia.org/wiki/Unicode_font#List_of_Unicode_fonts: https://en.wikipedia.org/wiki/Unicode_font#List_of_Unicode_fonts

[161] https://www.unifont.org/fontguide/: https://www.unifont.org/fontguide/

[162] «Абсолютный минимум, который каждый разработчик должен обязательно, совершенно точно знать о Юникоде и наборах символов»: https://www.joelonsoftware.com/articles/Unicode.html

[163] «Что каждый программист обязательно, совершенно точно должен знать о кодировках и наборах символов для работы с текстом»: https://kunststube.net/encoding/

[164] Список рекомендованной литературы от Консорциума Юникод: https://www.unicode.org/resources/readinglist.html

[165] Space Yourself: https://www.smashingmagazine.com/2015/10/space-yourself/

[166] «У JavaScript проблема Юникода»: https://mathiasbynens.be/notes/javascript-unicode

[167] Креативные юзернеймы и захват учётной записи Spotify: https://labs.spotify.com/2013/06/18/creative-usernames/

[168] Основная латиница: https://wikipedia.org/wiki/Basic_Latin

[169] Дополнение к латинице — 1: https://wikipedia.org/wiki/Latin-1_Supplement

[170] Расширенная латиница — A: https://wikipedia.org/wiki/Latin_Extended-A

[171] Расширенная латиница — B: https://wikipedia.org/wiki/Latin_Extended-B

[172] Расширения МФА: https://wikipedia.org/wiki/IPA_Extensions

[173] Модификаторы букв: https://wikipedia.org/wiki/Spacing_Modifier_Letters

[174] Комбинируемые диакритические знаки: https://wikipedia.org/wiki/Combining_Diacritical_Marks

[175] Греческое и коптское письмо: https://wikipedia.org/wiki/Greek_and_Coptic

[176] Кириллица: https://wikipedia.org/wiki/Cyrillic

[177] Дополнение к кириллице: https://wikipedia.org/wiki/Cyrillic_Supplement

[178] Армянское письмо: https://wikipedia.org/wiki/Armenian

[179] Еврейское письмо: https://wikipedia.org/wiki/Hebrew

[180] Арабское письмо: https://wikipedia.org/wiki/Arabic

[181] Сирийское письмо: https://wikipedia.org/wiki/Syriac

[182] Дополнение к арабскому письму: https://wikipedia.org/wiki/Arabic_Supplement

[183] Тана: https://wikipedia.org/wiki/Thaana

[184] Нко: https://wikipedia.org/wiki/NKo

[185] Самаритянское письмо: https://wikipedia.org/wiki/Samaritan

[186] Мандейское письмо: https://wikipedia.org/wiki/Mandaic

[187] Расширенное арабское письмо — A: https://wikipedia.org/wiki/Arabic_Extended-A

[188] Девангари: https://wikipedia.org/wiki/Devanagari

[189] Бенгальское письмо: https://wikipedia.org/wiki/Bengali

[190] Гурмукхи: https://wikipedia.org/wiki/Gurmukhi

[191] Гуджарати: https://wikipedia.org/wiki/Gujarati

[192] Ория: https://wikipedia.org/wiki/Oriya

[193] Тамильское письмо: https://wikipedia.org/wiki/Tamil

[194] Телугу: https://wikipedia.org/wiki/Telugu

[195] Каннада: https://wikipedia.org/wiki/Kannada

[196] Малаялам: https://wikipedia.org/wiki/Malayalam

[197] Сингальское письмо: https://wikipedia.org/wiki/Sinhala

[198] Тайское письмо: https://wikipedia.org/wiki/Thai

[199] Лаосское письмо: https://wikipedia.org/wiki/Lao

[200] Тибетское письмо: https://wikipedia.org/wiki/Tibetan

[201] Бирманское письмо: https://wikipedia.org/wiki/Myanmar

[202] Грузинское письмо: https://wikipedia.org/wiki/Georgian

[203] Элементы хангыля: https://wikipedia.org/wiki/Hangul_Jamo

[204] Эфиопское письмо: https://wikipedia.org/wiki/Ethiopic

[205] Дополнение к эфиопскому письму: https://wikipedia.org/wiki/Ethiopic_Supplement

[206] Чероки: https://wikipedia.org/wiki/Cherokee

[207] Канадское слоговое письмо: https://wikipedia.org/wiki/Unified_Canadian_Aboriginal_Syllabics

[208] Огамическое письмо: https://wikipedia.org/wiki/Ogham

[209] Руны: https://wikipedia.org/wiki/Runic

[210] Байбайин: https://wikipedia.org/wiki/Tagalog

[211] Хануноо: https://wikipedia.org/wiki/Hanunoo

[212] Бухид: https://wikipedia.org/wiki/Buhid

[213] Тагбанва: https://wikipedia.org/wiki/Tagbanwa

[214] Кхмерское письмо: https://wikipedia.org/wiki/Khmer

[215] Старомонгольское письмо: https://wikipedia.org/wiki/Mongolian

[216] Расширенное канадское слоговое письмо: https://wikipedia.org/wiki/Unified_Canadian_Aboriginal_Syllabics_Extended

[217] Лимбу: https://wikipedia.org/wiki/Limbu

[218] Лы: https://wikipedia.org/wiki/Tai_Le

[219] Ныа: https://wikipedia.org/wiki/New_Tai_Lue

[220] Кхмерские символы: https://wikipedia.org/wiki/Khmer_Symbols

[221] Лонтара: https://wikipedia.org/wiki/Buginese

[222] Ланна: https://wikipedia.org/wiki/Tai_Tham

[223] Расширенные комбинируемые диакритические знаки: https://wikipedia.org/wiki/Combining_Diacritical_Marks_Extended

[224] Балийское письмо: https://wikipedia.org/wiki/Balinese

[225] Сунданское письмо: https://wikipedia.org/wiki/Sundanese

[226] Батакское письмо: https://wikipedia.org/wiki/Batak

[227] Лепча: https://wikipedia.org/wiki/Lepcha

[228] Ол-чики: https://wikipedia.org/wiki/Ol_Chiki

[229] Дополнение к сунданскому письму: https://wikipedia.org/wiki/Sundanese_Supplement

[230] Расширения Веды: https://wikipedia.org/wiki/Vedic_Extensions

[231] Фонетические расширения: https://wikipedia.org/wiki/Phonetic_Extensions

[232] Дополнение к фонетическим расширениям: https://wikipedia.org/wiki/Phonetic_Extensions_Supplement

[233] U+1DFF Дополнение к комбинируемым диакритическим знакам: https://wikipedia.org/wiki/Combining_Diacritical_Marks_Supplement

[234] Дополнительная расширенная латиница: https://wikipedia.org/wiki/Latin_Extended_Additional

[235] Расширенное греческое письмо: https://wikipedia.org/wiki/Greek_Extended

[236] Основная пунктуация: https://wikipedia.org/wiki/General_Punctuation

[237] Надстрочные и подстрочные знаки: https://wikipedia.org/wiki/Superscripts_and_Subscripts

[238] Знаки валют: https://wikipedia.org/wiki/Currency_Symbols

[239] Комбинируемые диакритические знаки для символов: https://wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols

[240] Буквоподобные символы: https://wikipedia.org/wiki/Letterlike_Symbols

[241] Числовые формы: https://wikipedia.org/wiki/Number_Forms

[242] Стрелки: https://wikipedia.org/wiki/Arrows

[243] Математические операторы: https://wikipedia.org/wiki/Mathematical_Operators

[244] Разные технические знаки: https://wikipedia.org/wiki/Miscellaneous_Technical

[245] Пиктограммы управляющих символов: https://wikipedia.org/wiki/Control_Pictures

[246] Оптическое распознавание символов: https://wikipedia.org/wiki/Optical_Character_Recognition

[247] Обрамлённые буквы и цифры: https://wikipedia.org/wiki/Enclosed_Alphanumerics

[248] Псевдографика: https://wikipedia.org/wiki/Box_Drawing

[249] Блочные элементы: https://wikipedia.org/wiki/Block_Elements

[250] Геометрические фигуры: https://wikipedia.org/wiki/Geometric_Shapes

[251] Разные символы: https://wikipedia.org/wiki/Miscellaneous_Symbols

[252] Dingbats: https://wikipedia.org/wiki/Dingbats

[253] Разные математические символы — A: https://wikipedia.org/wiki/Miscellaneous_Mathematical_Symbols-A

[254] Дополнительные стрелки — A: https://wikipedia.org/wiki/Supplemental_Arrows-A

[255] Шрифт Брайля: https://wikipedia.org/wiki/Braille_Patterns

[256] Дополнительные стрелки — B: https://wikipedia.org/wiki/Supplemental_Arrows-B

[257] Разные математические символы — B: https://wikipedia.org/wiki/Miscellaneous_Mathematical_Symbols-B

[258] Дополнительные математические операторы: https://wikipedia.org/wiki/Supplemental_Mathematical_Operators

[259] Разные символы и стрелки: https://wikipedia.org/wiki/Miscellaneous_Symbols_and_Arrows

[260] Глаголица: https://wikipedia.org/wiki/Glagolitic

[261] Расширенная латиница — C: https://wikipedia.org/wiki/Latin_Extended-C

[262] Коптское письмо: https://wikipedia.org/wiki/Coptic

[263] Дополнение к грузинскому письму: https://wikipedia.org/wiki/Georgian_Supplement

[264] Древнеливийское письмо: https://wikipedia.org/wiki/Tifinagh

[265] Расширенное эфиопское письмо: https://wikipedia.org/wiki/Ethiopic_Extended

[266] Расширенная кириллица — A: https://wikipedia.org/wiki/Cyrillic_Extended-A

[267] Дополнительная пунктуация: https://wikipedia.org/wiki/Supplemental_Punctuation

[268] Дополнение к ключам ККЯ: https://wikipedia.org/wiki/CJK_Radicals_Supplement

[269] Ключи Канси: https://wikipedia.org/wiki/Kangxi_Radicals

[270] Идеографические пояснительные символы: https://wikipedia.org/wiki/Ideographic_Description_Characters

[271] Символы и пунктуация ККЯ: https://wikipedia.org/wiki/CJK_Symbols_and_Punctuation

[272] Хирагана: https://wikipedia.org/wiki/Hiragana

[273] Катакана: https://wikipedia.org/wiki/Katakana

[274] Чжуинь фухао: https://wikipedia.org/wiki/Bopomofo

[275] Совместимые элементы хангыля: https://wikipedia.org/wiki/Hangul_Compatibility_Jamo

[276] Камбун: https://wikipedia.org/wiki/Kanbun

[277] Расширенное чжуинь фухао: https://wikipedia.org/wiki/Bopomofo_Extended

[278] Черты ККЯ: https://wikipedia.org/wiki/CJK_Strokes

[279] Фонетические расширения катаканы: https://wikipedia.org/wiki/Katakana_Phonetic_Extensions

[280] Обрамлённые буквы и месяцы ККЯ: https://wikipedia.org/wiki/Enclosed_CJK_Letters_and_Months

[281] Совместимые элементы ККЯ: https://wikipedia.org/wiki/CJK_Compatibility

[282] Унифицированные идеограммы ККЯ — расширение A: https://wikipedia.org/wiki/CJK_Unified_Ideographs_Extension_A

[283] Гексаграммы «Книги Перемен»: https://wikipedia.org/wiki/Yijing_Hexagram_Symbols

[284] Унифицированные идеограммы ККЯ: https://wikipedia.org/wiki/CJK_Unified_Ideographs

[285] Слоговое письмо и: https://wikipedia.org/wiki/Yi_Syllables

[286] Ключи письма и: https://wikipedia.org/wiki/Yi_Radicals

[287] Лису: https://wikipedia.org/wiki/Lisu

[288] Ваи: https://wikipedia.org/wiki/Vai

[289] Расширенная кириллица — B: https://wikipedia.org/wiki/Cyrillic_Extended-B

[290] Бамум: https://wikipedia.org/wiki/Bamum

[291] Символы изменения тона: https://wikipedia.org/wiki/Modifier_Tone_Letters

[292] Расширенная латиница — D: https://wikipedia.org/wiki/Latin_Extended-D

[293] Силхетское нагари: https://wikipedia.org/wiki/Syloti_Nagri

[294] Общеиндийские числовые формы: https://wikipedia.org/wiki/Common_Indic_Number_Forms

[295] Монгольское квадратное письмо: https://wikipedia.org/wiki/Phags-pa

[296] Саураштра: https://wikipedia.org/wiki/Saurashtra

[297] Расширенное деванагари: https://wikipedia.org/wiki/Devanagari_Extended

[298] Кая-ли: https://wikipedia.org/wiki/Kayah_Li

[299] Реджанг: https://wikipedia.org/wiki/Rejang

[300] Расширенные элементы хангыля — A: https://wikipedia.org/wiki/Hangul_Jamo_Extended-A

[301] Яванское письмо: https://wikipedia.org/wiki/Javanese

[302] Расширенное бирманское письмо — B: https://wikipedia.org/wiki/Myanmar_Extended-B

[303] Чамское письмо: https://wikipedia.org/wiki/Cham

[304] Расширенное бирманское письмо — A: https://wikipedia.org/wiki/Myanmar_Extended-A

[305] Тай-вьет: https://wikipedia.org/wiki/Tai_Viet

[306] Расширения манипури: https://wikipedia.org/wiki/Meetei_Mayek_Extensions

[307] Расширенное эфиопское письмо — A: https://wikipedia.org/wiki/Ethiopic_Extended-A

[308] Расширенная латиница — E: https://wikipedia.org/wiki/Latin_Extended-E

[309] Дополнение к чероки: https://wikipedia.org/wiki/Cherokee_Supplement

[310] Манипури: https://wikipedia.org/wiki/Meetei_Mayek

[311] Слоговое письмо хангыля: https://wikipedia.org/wiki/Hangul_Syllables

[312] Расширенные элементы хангыля — B: https://wikipedia.org/wiki/Hangul_Jamo_Extended-B

[313] Верхняя часть суррогатных пар: https://wikipedia.org/wiki/High_Surrogates

[314] Верхняя часть суррогатных пар для частного использования: https://wikipedia.org/wiki/High_Private_Use_Surrogates

[315] Нижняя часть суррогатных пар: https://wikipedia.org/wiki/Low_Surrogates

[316] Область для частного использования: https://wikipedia.org/wiki/Private_Use_Area

[317] Совместимые идеограммы ККЯ: https://wikipedia.org/wiki/CJK_Compatibility_Ideographs

[318] Алфавитные формы представления: https://wikipedia.org/wiki/Alphabetic_Presentation_Forms

[319] Арабские формы представления — A: https://wikipedia.org/wiki/Arabic_Presentation_Forms-A

[320] Вариантные селекторы: https://wikipedia.org/wiki/Variation_Selectors

[321] Вертикальные формы: https://wikipedia.org/wiki/Vertical_Forms

[322] Комбинируемые полузнаки: https://wikipedia.org/wiki/Combining_Half_Marks

[323] Совместимые формы ККЯ: https://wikipedia.org/wiki/CJK_Compatibility_Forms

[324] Малые вариантные формы: https://wikipedia.org/wiki/Small_Form_Variants

[325] Арабские формы представления — B: https://wikipedia.org/wiki/Arabic_Presentation_Forms-B

[326] Полуширинные и полноширинные формы: https://wikipedia.org/wiki/Halfwidth_and_Fullwidth_Forms

[327] Специальные символы: https://wikipedia.org/wiki/Specials

[328] Слоги линейного письма Б: https://wikipedia.org/wiki/Linear_B_Syllabary

[329] Идеограммы линейного письма Б: https://wikipedia.org/wiki/Linear_B_Ideograms

[330] Эгейские цифры: https://wikipedia.org/wiki/Aegean_Numbers

[331] Древнегреческие цифры: https://wikipedia.org/wiki/Ancient_Greek_Numbers

[332] Древние символы: https://wikipedia.org/wiki/Ancient_Symbols

[333] Фестский диск: https://wikipedia.org/wiki/Phaistos_Disc

[334] Ликийское письмо: https://wikipedia.org/wiki/Lycian

[335] Карийское письмо: https://wikipedia.org/wiki/Carian

[336] Коптские цифры епакты: https://wikipedia.org/wiki/Coptic_Epact_Numbers

[337] Древнеиталийское письмо: https://wikipedia.org/wiki/Old_Italic

[338] Готское письмо: https://wikipedia.org/wiki/Gothic

[339] Древнепермское письмо: https://wikipedia.org/wiki/Old_Permic

[340] Угаритское письмо: https://wikipedia.org/wiki/Ugaritic

[341] Древнеперсидское письмо: https://wikipedia.org/wiki/Old_Persian

[342] Дезеретское письмо: https://wikipedia.org/wiki/Deseret

[343] Алфавит Шоу: https://wikipedia.org/wiki/Shavian

[344] Сомалийское письмо: https://wikipedia.org/wiki/Osmanya

[345] Эльбасанское письмо: https://wikipedia.org/wiki/Elbasan

[346] Агванское письмо: https://wikipedia.org/wiki/Caucasian_Albanian

[347] Линейное письмо А: https://wikipedia.org/wiki/Linear_A

[348] Кипрское письмо: https://wikipedia.org/wiki/Cypriot_Syllabary

[349] Имперское арамейское письмо: https://wikipedia.org/wiki/Imperial_Aramaic

[350] Пальмирское письмо: https://wikipedia.org/wiki/Palmyrene

[351] Набатейское письмо: https://wikipedia.org/wiki/Nabataean

[352] Хатран: https://wikipedia.org/wiki/Hatran

[353] Финикийское письмо: https://wikipedia.org/wiki/Phoenician

[354] Лидийское письмо: https://wikipedia.org/wiki/Lydian

[355] Мероитские иероглифы: https://wikipedia.org/wiki/Meroitic_Hieroglyphs

[356] Мероитский курсив: https://wikipedia.org/wiki/Meroitic_Cursive

[357] Кхароштхи: https://wikipedia.org/wiki/Kharoshthi

[358] Древнее южноаравийское письмо: https://wikipedia.org/wiki/Old_South_Arabian

[359] Древнее северноаравийское письмо: https://wikipedia.org/wiki/Old_North_Arabian

[360] Манихейское письмо: https://wikipedia.org/wiki/Manichaean

[361] Авестийское письмо: https://wikipedia.org/wiki/Avestan

[362] Парфянское эпиграфическое письмо: https://wikipedia.org/wiki/Inscriptional_Parthian

[363] Пахлевийское эпиграфическое письмо: https://wikipedia.org/wiki/Inscriptional_Pahlavi

[364] Псалтирь пахлеви: https://wikipedia.org/wiki/Psalter_Pahlavi

[365] Древнетюркское руническое письмо: https://wikipedia.org/wiki/Old_Turkic

[366] Венгерские руны: https://wikipedia.org/wiki/Old_Hungarian

[367] Цифры руми: https://wikipedia.org/wiki/Rumi_Numeral_Symbols

[368] Брахми: https://wikipedia.org/wiki/Brahmi

[369] Кайтхи: https://wikipedia.org/wiki/Kaithi

[370] Соранг-сомпенг: https://wikipedia.org/wiki/Sora_Sompeng

[371] Чакма: https://wikipedia.org/wiki/Chakma

[372] Махаджани: https://wikipedia.org/wiki/Mahajani

[373] Шарада: https://wikipedia.org/wiki/Sharada

[374] Сингальские архаические цифры: https://wikipedia.org/wiki/Sinhala_Archaic_Numbers

[375] Ходжики: https://wikipedia.org/wiki/Khojki

[376] Мултани: https://wikipedia.org/wiki/Multani

[377] Худабади: https://wikipedia.org/wiki/Khudawadi

[378] Грантха: https://wikipedia.org/wiki/Grantha

[379] Тирхута: https://wikipedia.org/wiki/Tirhuta

[380] Сиддхаматрика: https://wikipedia.org/wiki/Siddham

[381] Моди: https://wikipedia.org/wiki/Modi

[382] Такри: https://wikipedia.org/wiki/Takri

[383] Ахом: https://wikipedia.org/wiki/Ahom

[384] Варанг-кшити: https://wikipedia.org/wiki/Warang_Citi

[385] По Чин Хо: https://wikipedia.org/wiki/Pau_Cin_Hau

[386] Клинопись: https://wikipedia.org/wiki/Cuneiform

[387] Клинописные цифры и пунктуация: https://wikipedia.org/wiki/Cuneiform_Numbers_and_Punctuation

[388] Раннединастическая клинопись: https://wikipedia.org/wiki/Early_Dynastic_Cuneiform

[389] Египетские иероглифы: https://wikipedia.org/wiki/Egyptian_Hieroglyphs

[390] Анатолийские иероглифы: https://wikipedia.org/wiki/Anatolian_Hieroglyphs

[391] Дополнение к бамуму: https://wikipedia.org/wiki/Bamum_Supplement

[392] Мро: https://wikipedia.org/wiki/Mro

[393] Басса: https://wikipedia.org/wiki/Bassa_Vah

[394] Пахау: https://wikipedia.org/wiki/Pahawh_Hmong

[395] Мяо: https://wikipedia.org/wiki/Miao

[396] Дополнение к кане: https://wikipedia.org/wiki/Kana_Supplement

[397] Стенография Дюплойе: https://wikipedia.org/wiki/Duployan

[398] Форматирующие символы стенографии: https://wikipedia.org/wiki/Shorthand_Format_Controls

[399] Византийские музыкальные символы: https://wikipedia.org/wiki/Byzantine_Musical_Symbols

[400] Музыкальные символы: https://wikipedia.org/wiki/Musical_Symbols

[401] Древнегреческая нотопись: https://wikipedia.org/wiki/Ancient_Greek_Musical_Notation

[402] Символы «Канона великого сокровенного»: https://wikipedia.org/wiki/Tai_Xuan_Jing_Symbols

[403] Цифры счётных палочек: https://wikipedia.org/wiki/Counting_Rod_Numerals

[404] Математические буквы и цифры: https://wikipedia.org/wiki/Mathematical_Alphanumeric_Symbols

[405] SignWriting: https://wikipedia.org/wiki/Sutton_SignWriting

[406] Кикакуи: https://wikipedia.org/wiki/Mende_Kikakui

[407] Арабские математические алфавитные символы: https://wikipedia.org/wiki/Arabic_Mathematical_Alphabetic_Symbols

[408] Кости для маджонга: https://wikipedia.org/wiki/Mahjong_Tiles

[409] Кости для домино: https://wikipedia.org/wiki/Domino_Tiles

[410] Игральные карты: https://wikipedia.org/wiki/Playing_Cards

[411] Дополнение к обрамлённым буквам и цифрам: https://wikipedia.org/wiki/Enclosed_Alphanumeric_Supplement

[412] Дополнение к обрамлённым идеографическим символам: https://wikipedia.org/wiki/Enclosed_Ideographic_Supplement

[413] Разные символы и пиктограммы: https://wikipedia.org/wiki/Miscellaneous_Symbols_and_Pictographs

[414] Эмотиконы: https://wikipedia.org/wiki/Emoticons

[415] Орнаментные символы: https://wikipedia.org/wiki/Ornamental_Dingbats

[416] Транспортные и картографические символы: https://wikipedia.org/wiki/Transport_and_Map_Symbols

[417] Алхимические символы: https://wikipedia.org/wiki/Alchemical_Symbols

[418] Расширенные геометрические фигуры: https://wikipedia.org/wiki/Geometric_Shapes_Extended

[419] Дополнительные стрелки — C: https://wikipedia.org/wiki/Supplemental_Arrows-C

[420] Дополнительные символы и пиктограммы: https://wikipedia.org/wiki/Supplemental_Symbols_and_Pictographs

[421] Унифицированные идеограммы ККЯ — расширение B: https://wikipedia.org/wiki/CJK_Unified_Ideographs_Extension_B

[422] Унифицированные идеограммы ККЯ — расширение C: https://wikipedia.org/wiki/CJK_Unified_Ideographs_Extension_C

[423] Унифицированные идеограммы ККЯ — расширение D: https://wikipedia.org/wiki/CJK_Unified_Ideographs_Extension_D

[424] Унифицированные идеограммы ККЯ — расширение E: https://wikipedia.org/wiki/CJK_Unified_Ideographs_Extension_E

[425] Дополнение к совместимым иероглифам ККЯ: https://wikipedia.org/wiki/CJK_Compatibility_Ideographs_Supplement

[426] Tags: https://wikipedia.org/wiki/Tags

[427] Дополнение к вариантным селекторам: https://wikipedia.org/wiki/Variation_Selectors_Supplement

[428] Дополнительная область для частного использования — A: https://wikipedia.org/wiki/Supplementary_Private_Use_Area-A

[429] Дополнительная область для частного использования — B: https://wikipedia.org/wiki/Supplementary_Private_Use_Area-B

[430] принципы: https://www.unicode.org/standard/principles.html

[431] codepoints.net: https://codepoints.net/about#unicode

[432] Версия 11.0: https://www.unicode.org/versions/Unicode11.0.0/

[433] Версия 10.0: https://www.unicode.org/versions/Unicode10.0.0/

[434] Версия 9.0: https://www.unicode.org/versions/Unicode9.0.0/

[435] Версия 8.0: https://www.unicode.org/versions/Unicode8.0.0/

[436] Версия 7.0: https://www.unicode.org/versions/Unicode7.0.0/

[437] Версия 6.3: https://www.unicode.org/versions/Unicode6.3.0/

[438] Версия 6.2: https://www.unicode.org/versions/Unicode6.2.0/

[439] Версия 6.1: https://www.unicode.org/versions/Unicode6.1.0/

[440] Версия 6.0: https://www.unicode.org/versions/Unicode6.0.0/

[441] Версия 5.2: https://www.unicode.org/versions/Unicode5.2.0/

[442] Версия 5.1: https://www.unicode.org/versions/Unicode5.1.0/

[443] Версия 4.0.1: https://www.unicode.org/versions/Unicode4.0.1/

[444] Версия 4.0: https://www.unicode.org/versions/corrigendum5.html

[445] Источник: https://habr.com/ru/post/485148/?utm_source=habrahabr&utm_medium=rss&utm_campaign=485148