Что такое символы юникода

Юникод для чайников

Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
Сам я не очень люблю заголовки вроде «Покемоны в собственном соку для чайников\кастрюль\сковородок», но это кажется именно тот случай — говорить будем о базовых вещах, работа с которыми довольно часто приводить к купе набитых шишек и уйме потерянного времени вокруг вопроса — «Почему же оно не работает?». Если вы до сих пор боитесь и\или не понимаете Юникода — прошу под кат.

Зачем?

Главный вопрос новичка, который встречается с впечатляющим количеством кодировок и на первый взгляд запутанными механизмами работы с ними (например, в Python 2.x). Краткий ответ — потому что так сложилось 🙂

Кодировкой, кто не знает, называют способ представления в памяти компьютера (читай — в нулях-единицах\числах) цифр, буков и всех остальных знаков. Например, пробел представляется как 0b100000 (в двоичной), 32 (в десятичной) или 0x20 (в шестнадцатеричной системе счисления).

Так вот, когда-то памяти было совсем немного и всем компьютерам было достаточно 7 бит для представления всех нужных символов (цифры, строчный\прописной латинский алфавит, куча знаков и так называемые управляемые символы — все возможные 127 номеров были кому-то отданы). Кодировка в это время была одна — ASCII. Шло время, все были счастливы, а кто не был счастлив (читай — кому не хватало знака «©» или родной буквы «щ») — использовали оставшиеся 128 знаков на свое усмотрение, то есть создавали новые кодировки. Так появились и ISO-8859-1, и наши (то есть кириличные) cp1251 и KOI8. Вместе с ними появилась и проблема интерпретации байтов типа 0b1******* (то есть символов\чисел от 128 и до 255) — например, 0b11011111 в кодировке cp1251 это наша родная «Я», в тоже время в кодировке ISO-8859-1 это греческая немецкая Eszett (подсказывает Moonrise) «ß». Ожидаемо, сетевая коммуникация и просто обмен файлами между разными компьютерами превратились в чёрт-знает-что, несмотря на то, что заголовки типа ‘Content-Encoding’ в HTTP протоколе, email-письмах и HTML-страницах немного спасали ситуацию.

В этот момент собрались светлые умы и предложили новый стандарт — Unicode. Это именно стандарт, а не кодировка — сам по себе Юникод не определяет, как символы будут сохранятся на жестком диске или передаваться по сети. Он лишь определяет связь между символом и некоторым числом, а формат, согласно с которым эти числа будут превращаться в байты, определяется Юникод-кодировками (например, UTF-8 или UTF-16). На данный момент в Юникод-стандарте есть немного более 100 тысяч символов, тогда как UTF-16 позволяет поддерживать более одного миллиона (UTF-8 — и того больше).

Ближе к делу!

Естественно, есть поддержка Юникода и в Пайтоне. Но, к сожалению, только в Python 3 все строки стали юникодом, и новичкам приходиться убиваться об ошибки типа:

Давайте разберемся, но по порядку.

Зачем кто-то использует Юникод?

Почему мой любимый html-парсер возвращает Юникод? Пусть возвращает обычную строку, а я там уже с ней разберусь! Верно? Не совсем. Хотя каждый из существующих в Юникоде символов и можно (наверное) представить в некоторой однобайтовой кодировке (ISO-8859-1, cp1251 и другие называют однобайтовыми, поскольку любой символ они кодируют ровно в один байт), но что делать если в строке должны быть символы с разных кодировок? Присваивать отдельную кодировку каждому символу? Нет, конечно, надо использовать Юникод.

Зачем нам новый тип «unicode»?

Вот мы и добрались до самого интересного. Что такое строка в Python 2.x? Это просто байты. Просто бинарные данные, которые могут быть чем-угодно. На самом деле, когда мы пишем что-нибудь вроде:интерпретатор не создает переменную, которая содержит первые четыре буквы латинского алфавита, но только последовательность с четырёх байт, и латинские буквы здесь используются исключительно для обозначения именно этого значения байта. То есть ‘a’ здесь просто синоним для написания ‘\x61’, и ни чуточку больше. Например:

И ответ на вопрос — зачем нам «unicode» уже более очевиден — нужен тип, который будет представятся символами, а не байтами.

Хорошо, я понял чем есть строка. Тогда что такое Юникод в Пайтоне?

«type unicode» — это прежде всего абстракция, которая реализует идею Юникода (набор символов и связанных с ними чисел). Объект типа «unicode» — это уже не последовательность байт, но последовательность собственно символов без какого либо представления о том, как эти символы эффективно сохранить в памяти компьютера. Если хотите — это более высокой уровень абстракции, чем байтовый строки (именно так в Python 3 называют обычные строки, которые используются в Python 2.6).

Как пользоваться Юникодом?

Как из юникод-строки получить обычную? Закодировать её:

Алгоритм кодирования естественно обратный приведенному выше.

Не кодируется 🙁

Разберем примеры с начала статьи. Как работает конкатенация строки и юникод-строки? Простая строка должна быть превращена в юникод-строку, и поскольку интерпретатор не знает кодировки, от использует кодировку по умолчанию — ascii. Если этой кодировке не удастся декодировать строку, получим некрасивую ошибку. В таком случае нам нужно самим привести строку к юникод-строке, используя правильную кодировку:

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

Теперь использование «str» и юникод-строк. Не используйте «str» и юникод строки 🙂 В «str» нет возможности указать кодировку, соответственно кодировка по умолчанию будет использоваться всегда и любые символы > 128 будут приводить к ошибке. Используйте метод «encode»:

«UnicodeEncodeError» — знак того, что нам нужно указать правильную кодировку во время превращения юникод-строки в обычную (или использовать второй параметр ‘ignore’\’replace’\’xmlcharrefreplace’ в методе «encode»).

Хочу ещё!

Хорошо, используем бабу-ягу из примера выше ещё раз:

Есть ещё способ использования «u»» для представления, например, кириллицы, и при этом не указывать кодировку или нечитабельные юникод-поинты (то есть «u’\u1234’»). Способ не совсем удобный, но интересный — использовать unicode entity codes:

Ну и вроде всё. Основные советы — не путать «encode»\«decode» и понимать различия между байтами и символами.

Python 3

Здесь без кода, ибо опыта нет. Свидетели утверждают, что там всё значительно проще и веселее. Кто возьмется на кошках продемонстрировать различия между здесь (Python 2.x) и там (Python 3.x) — респект и уважуха.

Полезно

Раз уж мы о кодировках, порекомендую ресурс, который время-от-времени помогает побороть кракозябры — http://2cyr.com/decode/?lang=ru.

Unicode HOWTO — официальный документ о том где, как и зачем Юникод в Python 2.x.

Спасибо за внимание. Буду благодарен за замечания в приват.

Источник

Что такое Юникод?

Юникод (Unicode), это многоязычный, основанный на ASCII стандарт кодирования символов, а также, связанное с ним, семейство многобайтных кодировок. Если некоторые слова из предыдущего предложения вам не понятны, давайте рассмотрим их подробнее.

Что такое кодировка

Современные компьютеры всё ещё достаточно глупые и, в большинстве своём, не умеют работать ни с чем, кроме чисел. Мы рассматриваем на своих мониторах фотографии, смотрим фильмы, играем в игры. Но для компьютеров всё это лишь безликий поток нулей и единичек. Так же и текст — для компьютера это просто набор байтов. Буквы и любые другие символы представляются в машинной памяти, как числа.

Поэтому программистам при работе с текстом приходится делать подобные соглашения: «А давайте каждому символу будет соответствовать один байт. Причём, если в байте будет число 43, то будем считать, что это цифра ноль. А если число 66, то пусть это будет заглавная латинская буква B».

Подобный список всех используемых символов и соответствующих им чисел и называется кодировкой. Вы, скорее всего, уже слышали названия многих кодировок: Windows-1251, KOI-8, ну и, конечно, Unicode.

Крякозябры

Наверное, часто бывала ситуация, когда вы открываете страницу в браузере, а там вместо текста какая-то мешанина из чудных символов. Или просто сплошные вопросительные знаки. Или вы пишете любовное письмо своей девушке, а она звонит вам и говорит «что за нечитаемый бред ты мне прислал? Я обиделась».

Это всё из-за того, что в мире наплодилось слишком много разных кодировок. И текст в одной из них выглядит совершенно не так, как в другой. Дело в том, что компьютер не знает какую кодировку вы используете для текста. Для него это просто последовательность каких-то чисел.

Например, ваш текстовый редактор настроен на кодировку Windows-1251. И вы пишете «Здравствуйте, дорогая Маша!». Вы нажимаете первую букву и программа думает: «ага, русская заглавная буква Зэ — код 199». И записывает число 199 в файл. Маша получает ваше письмо, но в её почтовом клиенте стоит кодировка KOI8-R (потому что Маша любит старый Unix). А в этой кодировке числу 199 соответствует строчная буква «г». И Маша читает: «гДПЮБЯРБСИРЕ, ДНПНЦЮЪ лЮЬЮ!». Маша обиделась!

Чтобы подобного не происходило, нужно каким-то образом указывать кодировку в которой набран текст. Например, в HTML это делается с помощью тега:

ASCII

В определённый момент времени распространение получила кодировка ASCII (American Standard Code for Information Interchange). В ней определены 128 символов с кодами от 0 до 127. Сюда включён латинский алфавит, цифры и основные знаки препинания (

Практически все современные кодировки, использующиеся на персональных компьютерах являются ASCII-совместимыми. То есть первые 128 символов у них кодируются одинаково, а различия начинаются с кода 128 и выше. Вышеупомянутые Windows-1251 и KOI8-r также основаны на ASCII и если бы письмо начиналось бы с «Hello, my dear Maria!», то недопонимания не возникло бы.

Основан на ASCII и Юникод.

Однобайтные кодировки

Одна из причин, по которой появилось такое большое количество кодировок, это то, что вначале каждая компания придумывала свои стандарты, не обращая внимания на другие. Вторая причина заключается в том, что старые кодировки были однобайтными. То есть каждому символу в тексте соответствует один байт в памяти компьютера.

Однобайтные кодировки всем хороши: они компактны, с ними легко работать (нужно достать пятый символ — просто берём пятый байт от начала). Единственная проблема: в них помещается мало символов. Ровно столько, сколько значений может принимать один байт, то есть обычно, это 256. Например, в Windows-1251 мы отдали 128 символов под ASCII, добавили 66 букв русского алфавита (строчные и заглавные), несколько знаков препинания и вот у нас уже остаётся не так много свободных позиций. Даже на псевдографику не хватает.

То есть свести в одну кодировку все возможные символы даже европейских алфавитов достаточно сложно. А уж для китайцев с их тысячами иероглифов вообще всё тоскливо. А о всяких смайликах, эмоджи и иконках самолётиков и думать нечего. Поэтому для кириллицы приходилось изобретать свою кодировку, а для греческого языка другую.

Впрочем, такая ситуация сохранялась достаточно долго. Потому что проблемы англоязычных пользователей и программистов решила ASCII, а до китайских проблем им не было дела. С ростом же глобального интернета вдруг оказалось, что в мире говорят не только на английском языке, поэтому с кодировками нужно что-то менять.

Многобайтные кодировки

Самым простым решением было взять два байта вместо одного. Плюс такого решения: теперь можно в рамках одной кодировки использовать 65 тысяч символов. Минусы тоже есть:

Стандарт Unicode

В конечном итоге всё вылилось в стандарт Юникода, который худо-бедно, но решает практически все стоявшие перед кодировками проблемы.

С одной стороны, Юникод позволяет кодировать практически неограниченное количество символов. В последнем стандарте определено более 100 000 различных символов всех современных и многих уже мёртвых языков, а также различные иконки и пиктограммы. С другой стороны, некоторые способы кодирования позволяют Юникоду оставаться ASCII-совместимыми. Что позволяет работать, как и раньше многим программам, а также американским и другим англоязычным пользователям, многие из которых появления Юникода даже не заметили. В Юникоде также собраны все символы из всех популярных стандартов кодирования, что позволяет преобразовать в него любой текст из старой кодировки.

Практически все современные программы, работающие с текстом, понимают Юникод. Более того, обычно они в нём и работают. Например, даже когда вы открываете сайт в старой доброй Windows-1251, браузер сначала внутри у себя перекодирует все тексты в Юникод, а потом отображает их. В общем, Юникод, это светлое будущее интернета и всей компьютерной индустрии.

Отличие набора символов от кодировки

Термины «кодировка», «стандарт кодирования», «набор символов» обычно используются, как синонимы, но между ними есть и тонкие различия. Важно понимать разницу между «стандартом» и, собственно, «кодировкой». Некий стандарт просто говорит, что буква «A», это число 65, а буква «B» — 66. Кодировка же отвечает за то, как эти числа представить в памяти компьютера.

То есть в стандарте Юникода определено, что кириллической букве «А» соответствует абстрактное число 1040. Как представить это число в виде последовательности байтов решает уже конкретная кодировка — UTF-8, UTF-16, UTF-32.

То есть текстовый файл не может быть в кодировке «Юникод», а только в конкретной кодировке «UTF-8» или «UTF-16».

Кодировки и шрифты

Юникод, как и любая другая кодировка не описывает того, как следует отрисовывать символы. Для него число 1040, это «кириллическая заглавная буква А». А какая она, печатная, прописная, наклонная, жирная или с завитушками, это не его дело.

За изображение символа отвечают шрифты. Поэтому один и тот же символ в разных шрифтах может выглядеть по разному, а то и вообще отсутствовать.

© Таблица символов Юникода, 2012–2021.
Юникод® — это зарегистрированная торговая марка консорциума Юникод в США и других странах. Этот сайт никак не связан с консорциумом Юникод. Официальный сайт Юникода располагается по адресу www.unicode.org.

Мы используем 🍪cookie, чтобы сделать сайт максимально удобным для вас. Подробнее

Источник

FoxTools v.2.0

Привет, Гость! Ваш IP: 31.184.215.237

Таблица символов Юникода

DEC: Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
HEX: Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
Html: Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода

Что такое Юникод?

В отличие от ASCII, один символ кодируется двумя байтами, что позволяет использовать 65 536 символов, против 256.

Символы Юникода разделены на секции. Первые 128 символов повторяют таблицу ASCII.

Как пользоваться таблицей?

Символы представлены по 16 штук на строке. Сверху вы можете видеть шестнадцатеричное число от 0 до 16. Слева аналогичные числа в шестнадцатеричном виде от 0 до FFF.
Соединив число слева с числом сверху, можно узнать код символа. Например: английская буква F расположена на строке 004, в столбике 6: 004 + 6 = код символа 0046.

Впрочем, вы можете просто навести курсор на конкретный символ в таблице, чтобы узнать код символа. Либо нажать на символ, чтобы скопировать его, или его код в одном из форматов.

В поисковое поле можно ввести ключевые слова поиска, например: стрелки, солнце, сердце. Либо можно указать код символа в любом формате, например: 1123, 04BC, چ. Или сам символ, если требуется узнать код символа.

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

К сожалению, в данный момент таблица не работает на мобильных устройствах.

В Application Programming Interface этот сервис не реализован. В популярных языках программирования можно легко работать с символами Юникода. Если у вас возникнут какие-либо вопросы, обращайтесь на форум для программистов.

Сайт построен на HTML5

Для корректной работы данного сайта требуется HTML5.

Пожалуйста, воспользуйтесь браузером, который поддерживает HTML5. Многие современные браузеры поддерживают HTML5. Например:

Источник

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

Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода

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

Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница. К счастью, появился Юникод и ввёл общий стандарт. Юникод 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 (2 16 ) кодовых точек, что создаёт в сумме 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 и называется нижней частью пары.

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

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

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

Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода

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

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

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

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

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

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

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

Тип кодированияПример
Объект HTML (десятичный)Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
Объект HTML (hex)Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
Управляющий код 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)
Восьмеричная управляющая последовательность\360\237\226\226

Исходный код

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

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

Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода

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

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

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

СимволНазваниеОписание
‘’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 Заполнитель хангыль отображается в виде широкого пробела. Если символ явно не поддерживается в рендеринге, то отображается как полностью невидимый (и не занимает место, т. е. «нулевой ширины»). Это означает, что вы никогда не увидите уродливый символ замены символов (�).

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

**Примечание:** я тестировал рендеринг 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 заставляет их печататься в их окончательной и первоначальной формах, соответственно. Действует как пробел, но используется в том случае, когда желательно удерживать слова рядом друг с другом или соединить слово с его морфемой.

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

СимволКодовая точкаРезультат
ß0x00DFSS
ı0x0131I
ſ0x017FS
0xFB00FF
0xFB01FI
0xFB02FL
0xFB03FFI
0xFB04FFL
0xFB05ST
0xFB06ST

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

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

Сопоставления одного ко многим

Большинство нижеприведенных символов выражают свои сопоставления «один ко многим» в верхнем регистре, а другие в нижнем. В принципе, список можно разделить на две части.

Отличные пакеты и библиотеки

Эмодзи

Многообразие

Консорциум Unicode приложил огромные усилия для лучшего отражения человеческого многообразия (diversity), включая культурные практики. Вот отчёт Консорциума о многообразии.

Теперь доступны эмодзи для разных гендерных ситуаций, включая однополые семьи, держащиеся руки и поцелуи. Последний функционал — это составные последовательности эмодзи. Основные примеры:

Кодовые точкиРецептСочетание
U+1F469 U+200D U+2764 U+FE0F U+200D U+1F469 Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникодаЧто такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникодаЧто такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
U+1F468 U+200D U+1F468 U+200D U+1F467 U+200D U+1F466Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникодаЧто такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода

Кроме того, эмодзи теперь поддерживают модификаторы цвета кожи.

В Юникоде версии 8.0 (середина 2015 года) появилось пять символов-модификаторов символов для оттенков человеческой кожи. Эти символы основаны на шести оттенках по шкале Фицпатрика, признанного стандарта в дерматологии (в интернете много примеров этой шкалы, таких как FitzpatrickSkinType.pdf). Точные оттенки зависят от реализации.

КодНазваниеПримеры
U+1F3FBМодификатор эмодзи для шкалы Фицпатрика типы-1-2 Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникодаЧто такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
U+1F3FCМодификатор эмодзи для шкалы Фицпатрика тип-3 Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникодаЧто такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
U+1F3FDМодификатор эмодзи для шкалы Фицпатрика тип-4 Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникодаЧто такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
U+1F3FEМодификатор эмодзи для шкалы Фицпатрика тип-5 Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникодаЧто такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
U+1F3FFМодификатор эмодзи для шкалы Фицпатрика тип-6 Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникодаЧто такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода

Просто выбирайте нужный эмодзи, указав один из модификаторов цвета кожи \u<1F466>\u <1F3FE>.

Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода
+
Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода

Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода

Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода

Переменные и методы с креативными названиями

Примеры на JavaScript (ES6)

Обычно символы, обозначенные свойством ID_START, можно ставить в начале названия переменной. Символы, обозначенные свойством ID_CONTINUE, можно ставить после первого символа в имени переменной.

А вот некоторые юникодовские классы CSS от Дэвида Уолша.

Скрипт рекурсивного переименования тегов HTML

Если вы хотите переименовать все свои HTML-теги в нечто невидимое, вот скрипт, который вам нужен.

Только обратите внимание, что HTML поддерживает не все символы Юникода.

Вот что он поддерживает:

А вот некоторые результаты:

Шрифты Юникода

Ни один шрифт TrueType или OpenType не способен охватить все символы UTF-8, поскольку есть жёсткое ограничение на 65 535 символов в шрифте. Если у нас более 1,1 миллиона глифов UTF-8, то для полного покрытия придётся делать семейство шрифтов.

Дополнительные ресурсы

Более глубокое исследование самого Юникода

Общая карта

Карта основной многоязычной плоскости

Каждое нумерованное поле представляет собой 256 кодовых точек.

Что такое символы юникода. Смотреть фото Что такое символы юникода. Смотреть картинку Что такое символы юникода. Картинка про Что такое символы юникода. Фото Что такое символы юникода

Китайские, японские и корейские (ККЯ) письменности объединены одним цветом как символы ККЯ (CJK). В процессе, который называется унификацией Хань, распознаются общие символы и составляется список «унифицированных идеограмм ККЯ».

Блоки Юникода

Стандарт Юникод объединяет группы символов в блоки. Вот полный список блоков по всем 17-ти плоскостям.

НазваниеОтДо# кодовых точек
Основная латиницаU+0000U+007F128
Дополнение к латинице — 1U+0080U+00FF128
Расширенная латиница — AU+0100U+017F128
Расширенная латиница — BU+0180U+024F208
Расширения МФАU+0250U+02AF96
Модификаторы буквU+02B0U+02FF80
Комбинируемые диакритические знакиU+0300U+036F112
Греческое и коптское письмоU+0370U+03FF135
КириллицаU+0400U+04FF256
Дополнение к кириллицеU+0500U+052F48
Армянское письмоU+0530U+058F89
Еврейское письмоU+0590U+05FF87
Арабское письмоU+0600U+06FF255
Сирийское письмоU+0700U+074F77
Дополнение к арабскому письмуU+0750U+077F48
ТанаU+0780U+07BF50
НкоU+07C0U+07FF59
Самаритянское письмоU+0800U+083F61
Мандейское письмоU+0840U+085F29
Расширенное арабское письмо — AU+08A0U+08FF50
ДевангариU+0900U+097F128
Бенгальское письмоU+0980U+09FF93
ГурмукхиU+0A00U+0A7F79
ГуджаратиU+0A80U+0AFF85
ОрияU+0B00U+0B7F90
Тамильское письмоU+0B80U+0BFF72
ТелугуU+0C00U+0C7F96
КаннадаU+0C80U+0CFF87
МалаяламU+0D00U+0D7F100
Сингальское письмоU+0D80U+0DFF90
Тайское письмоU+0E00U+0E7F87
Лаосское письмоU+0E80U+0EFF67
Тибетское письмоU+0F00U+0FFF211
Бирманское письмоU+1000U+109F160
Грузинское письмоU+10A0U+10FF88
Элементы хангыляU+1100U+11FF256
Эфиопское письмоU+1200U+137F358
Дополнение к эфиопскому письмуU+1380U+139F26
ЧерокиU+13A0U+13FF92
Канадское слоговое письмоU+1400U+167F640
Огамическое письмоU+1680U+169F29
РуныU+16A0U+16FF89
БайбайинU+1700U+171F20
ХанунооU+1720U+173F23
БухидU+1740U+175F20
ТагбанваU+1760U+177F18
Кхмерское письмоU+1780U+17FF114
Старомонгольское письмоU+1800U+18AF156
Расширенное канадское слоговое письмоU+18B0U+18FF70
ЛимбуU+1900U+194F68
ЛыU+1950U+197F35
НыаU+1980U+19DF83
Кхмерские символыU+19E0U+19FF32
ЛонтараU+1A00U+1A1F30
ЛаннаU+1A20U+1AAF127
Расширенные комбинируемые диакритические знакиU+1AB0U+1AFF15
Балийское письмоU+1B00U+1B7F121
Сунданское письмоU+1B80U+1BBF64
Батакское письмоU+1BC0U+1BFF56
ЛепчаU+1C00U+1C4F74
Ол-чикиU+1C50U+1C7F48
Дополнение к сунданскому письмуU+1CC0U+1CCF8
Расширения ВедыU+1CD0U+1CFF41
Фонетические расширенияU+1D00U+1D7F128
Дополнение к фонетическим расширениямU+1D80U+1DBF64
U+1DFF Дополнение к комбинируемым диакритическим знакамU+1DC0U+1DFF58
Дополнительная расширенная латиницаU+1E00U+1EFF256
Расширенное греческое письмоU+1F00U+1FFF233
Основная пунктуацияU+2000U+206F111
Надстрочные и подстрочные знакиU+2070U+209F42
Знаки валютU+20A0U+20CF31
Комбинируемые диакритические знаки для символовU+20D0U+20FF33
Буквоподобные символыU+2100U+214F80
Числовые формыU+2150U+218F60
СтрелкиU+2190U+21FF112
Математические операторыU+2200U+22FF256
Разные технические знакиU+2300U+23FF251
Пиктограммы управляющих символовU+2400U+243F39
Оптическое распознавание символовU+2440U+245F11
Обрамлённые буквы и цифрыU+2460U+24FF160
ПсевдографикаU+2500U+257F128
Блочные элементыU+2580U+259F32
Геометрические фигурыU+25A0U+25FF96
Разные символыU+2600U+26FF256
DingbatsU+2700U+27BF192
Разные математические символы — AU+27C0U+27EF48
Дополнительные стрелки — AU+27F0U+27FF16
Шрифт БрайляU+2800U+28FF256
Дополнительные стрелки — BU+2900U+297F128
Разные математические символы — BU+2980U+29FF128
Дополнительные математические операторыU+2A00U+2AFF256
Разные символы и стрелкиU+2B00U+2BFF206
ГлаголицаU+2C00U+2C5F94
Расширенная латиница — CU+2C60U+2C7F32
Коптское письмоU+2C80U+2CFF123
Дополнение к грузинскому письмуU+2D00U+2D2F40
Древнеливийское письмоU+2D30U+2D7F59
Расширенное эфиопское письмоU+2D80U+2DDF79
Расширенная кириллица — AU+2DE0U+2DFF32
Дополнительная пунктуацияU+2E00U+2E7F67
Дополнение к ключам ККЯU+2E80U+2EFF115
Ключи КансиU+2F00U+2FDF214
Идеографические пояснительные символыU+2FF0U+2FFF12
Символы и пунктуация ККЯU+3000U+303F64
ХираганаU+3040U+309F93
КатаканаU+30A0U+30FF96
Чжуинь фухаоU+3100U+312F41
Совместимые элементы хангыляU+3130U+318F94
КамбунU+3190U+319F16
Расширенное чжуинь фухаоU+31A0U+31BF27
Черты ККЯU+31C0U+31EF36
Фонетические расширения катаканыU+31F0U+31FF16
Обрамлённые буквы и месяцы ККЯU+3200U+32FF254
Совместимые элементы ККЯU+3300U+33FF256
Унифицированные идеограммы ККЯ — расширение AU+3400U+4DBF6191
Гексаграммы «Книги Перемен»U+4DC0U+4DFF64
Унифицированные идеограммы ККЯU+4E00U+9FFF20941
Слоговое письмо иU+A000U+A48F1165
Ключи письма иU+A490U+A4CF55
ЛисуU+A4D0U+A4FF48
ВаиU+A500U+A63F300
Расширенная кириллица — BU+A640U+A69F96
БамумU+A6A0U+A6FF88
Символы изменения тонаU+A700U+A71F32
Расширенная латиница — DU+A720U+A7FF159
Силхетское нагариU+A800U+A82F44
Общеиндийские числовые формыU+A830U+A83F10
Монгольское квадратное письмоU+A840U+A87F56
СаураштраU+A880U+A8DF81
Расширенное деванагариU+A8E0U+A8FF30
Кая-лиU+A900U+A92F48
РеджангU+A930U+A95F37
Расширенные элементы хангыля — AU+A960U+A97F29
Яванское письмоU+A980U+A9DF91
Расширенное бирманское письмо — BU+A9E0U+A9FF31
Чамское письмоU+AA00U+AA5F83
Расширенное бирманское письмо — AU+AA60U+AA7F32
Тай-вьетU+AA80U+AADF72
Расширения манипуриU+AAE0U+AAFF23
Расширенное эфиопское письмо — AU+AB00U+AB2F32
Расширенная латиница — EU+AB30U+AB6F54
Дополнение к черокиU+AB70U+ABBF80
МанипуриU+ABC0U+ABFF56
Слоговое письмо хангыляU+AC00U+D7AF2
Расширенные элементы хангыля — BU+D7B0U+D7FF72
Верхняя часть суррогатных парU+D800U+DB7F2
Верхняя часть суррогатных пар для частного использованияU+DB80U+DBFF2
Нижняя часть суррогатных парU+DC00U+DFFF2
Область для частного использованияU+E000U+F8FF2
Совместимые идеограммы ККЯU+F900U+FAFF472
Алфавитные формы представленияU+FB00U+FB4F58
Арабские формы представления — AU+FB50U+FDFF643
Вариантные селекторыU+FE00U+FE0F16
Вертикальные формыU+FE10U+FE1F10
Комбинируемые полузнакиU+FE20U+FE2F16
Совместимые формы ККЯU+FE30U+FE4F32
Малые вариантные формыU+FE50U+FE6F26
Арабские формы представления — BU+FE70U+FEFF141
Полуширинные и полноширинные формыU+FF00U+FFEF225
Специальные символыU+FFF0U+FFFF7
Слоги линейного письма БU+10000U+1007F88
Идеограммы линейного письма БU+10080U+100FF123
Эгейские цифрыU+10100U+1013F57
Древнегреческие цифрыU+10140U+1018F77
Древние символыU+10190U+101CF13
Фестский дискU+101D0U+101FF46
Ликийское письмоU+10280U+1029F29
Карийское письмоU+102A0U+102DF49
Коптские цифры епактыU+102E0U+102FF28
Древнеиталийское письмоU+10300U+1032F36
Готское письмоU+10330U+1034F27
Древнепермское письмоU+10350U+1037F43
Угаритское письмоU+10380U+1039F31
Древнеперсидское письмоU+103A0U+103DF50
Дезеретское письмоU+10400U+1044F80
Алфавит ШоуU+10450U+1047F48
Сомалийское письмоU+10480U+104AF40
Эльбасанское письмоU+10500U+1052F40
Агванское письмоU+10530U+1056F53
Линейное письмо АU+10600U+1077F341
Кипрское письмоU+10800U+1083F55
Имперское арамейское письмоU+10840U+1085F31
Пальмирское письмоU+10860U+1087F32
Набатейское письмоU+10880U+108AF40
ХатранU+108E0U+108FF26
Финикийское письмоU+10900U+1091F29
Лидийское письмоU+10920U+1093F27
Мероитские иероглифыU+10980U+1099F32
Мероитский курсивU+109A0U+109FF90
КхароштхиU+10A00U+10A5F65
Древнее южноаравийское письмоU+10A60U+10A7F32
Древнее северноаравийское письмоU+10A80U+10A9F32
Манихейское письмоU+10AC0U+10AFF51
Авестийское письмоU+10B00U+10B3F61
Парфянское эпиграфическое письмоU+10B40U+10B5F30
Пахлевийское эпиграфическое письмоU+10B60U+10B7F27
Псалтирь пахлевиU+10B80U+10BAF29
Древнетюркское руническое письмоU+10C00U+10C4F73
Венгерские руныU+10C80U+10CFF108
Цифры румиU+10E60U+10E7F31
БрахмиU+11000U+1107F109
КайтхиU+11080U+110CF66
Соранг-сомпенгU+110D0U+110FF35
ЧакмаU+11100U+1114F67
МахаджаниU+11150U+1117F39
ШарадаU+11180U+111DF94
Сингальские архаические цифрыU+111E0U+111FF20
ХоджикиU+11200U+1124F61
МултаниU+11280U+112AF38
ХудабадиU+112B0U+112FF69
ГрантхаU+11300U+1137F85
ТирхутаU+11480U+114DF82
СиддхаматрикаU+11580U+115FF92
МодиU+11600U+1165F79
ТакриU+11680U+116CF66
АхомU+11700U+1173F57
Варанг-кшитиU+118A0U+118FF84
По Чин ХоU+11AC0U+11AFF57
КлинописьU+12000U+123FF922
Клинописные цифры и пунктуацияU+12400U+1247F116
Раннединастическая клинописьU+12480U+1254F196
Египетские иероглифыU+13000U+1342F1071
Анатолийские иероглифыU+14400U+1467F583
Дополнение к бамумуU+16800U+16A3F569
МроU+16A40U+16A6F43
БассаU+16AD0U+16AFF36
ПахауU+16B00U+16B8F127
МяоU+16F00U+16F9F133
Дополнение к канеU+1B000U+1B0FF2
Стенография ДюплойеU+1BC00U+1BC9F143
Форматирующие символы стенографииU+1BCA0U+1BCAF4
Византийские музыкальные символыU+1D000U+1D0FF246
Музыкальные символыU+1D100U+1D1FF231
Древнегреческая нотописьU+1D200U+1D24F70
Символы «Канона великого сокровенного»U+1D300U+1D35F87
Цифры счётных палочекU+1D360U+1D37F18
Математические буквы и цифрыU+1D400U+1D7FF996
SignWritingU+1D800U+1DAAF672
КикакуиU+1E800U+1E8DF213
Арабские математические алфавитные символыU+1EE00U+1EEFF143
Кости для маджонгаU+1F000U+1F02F44
Кости для доминоU+1F030U+1F09F100
Игральные картыU+1F0A0U+1F0FF82
Дополнение к обрамлённым буквам и цифрамU+1F100U+1F1FF173
Дополнение к обрамлённым идеографическим символамU+1F200U+1F2FF57
Разные символы и пиктограммыU+1F300U+1F5FF766
ЭмотиконыU+1F600U+1F64F80
Орнаментные символыU+1F650U+1F67F48
Транспортные и картографические символыU+1F680U+1F6FF98
Алхимические символыU+1F700U+1F77F116
Расширенные геометрические фигурыU+1F780U+1F7FF85
Дополнительные стрелки — CU+1F800U+1F8FF148
Дополнительные символы и пиктограммыU+1F900U+1F9FF15
Унифицированные идеограммы ККЯ — расширение BU+20000U+2A6DF42676
Унифицированные идеограммы ККЯ — расширение CU+2A700U+2B73F60
Унифицированные идеограммы ККЯ — расширение DU+2B740U+2B81F27
Унифицированные идеограммы ККЯ — расширение EU+2B820U+2CEAF2
Дополнение к совместимым иероглифам ККЯU+2F800U+2FA1F542
TagsU+E0000U+E007F97
Дополнение к вариантным селекторамU+E0100U+E01EF240
Дополнительная область для частного использования — AU+F0000U+FFFFF4
Дополнительная область для частного использования — BU+100000U+10FFFF4

Принципы Стандарта Юникод

Стандарт Юникод устанавливает следующие фундаментальные принципы:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *