Где находятся символы Юникода на диске и как происходит сопоставление? - PullRequest
1 голос
/ 28 апреля 2019

Есть несколько вопросов, связанных с юникодом, смущало меня некоторое время.

По следующим причинам я думаю, что символы Юникода существуют на диске.

  1. Выполнить echo "\u6211" в терминале, он напечатает глиф, соответствующий кодовой точке Unicode U + 6211.
  2. Существует концепция UCD (база данных символов Unicode), и мы можем скачать ее последнюю версию. UCD последний
  3. Некоторые символы Unicode новой версии, такие как последние смайлики, не могут отображаться на моем Mac, пока я не обновлю версию MacOS.

Таким образом, если на диске существуют символы Юникода, то: 1016 *

  1. Где это?
  2. Как я могу его обновить?
  3. Как происходит сопоставление кодовой точки юникода с глифом?
  4. Если я использую определенный шрифт, то каков процесс отображения точки кода Юникода в глиф?

Если нет, то как происходит сопоставление кодовой точки юникода с глифом?

Будет очень признательно, если кто-то сможет пролить свет на эти проблемы.

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

Выполнить echo "\u6211" в терминале, он напечатает глиф, соответствующий кодовой точке Unicode U + 6211.

Это echo -e в баш.

› echo "\u6211"
\u6211
› echo -e "\u6211"
我

Где это?

В файле шрифта.

Некоторые символы юникода новой версии, такие как последние смайлики, не могут отображаться на моем Mac, пока я не обновлю версию MacOS. Как я могу обновить его?

Достаточно установить / обновить подходящий шрифт с помощью эмодзи. У меня нет macOS, поэтому я не могу это проверить.

Я использую «Noto Color Emoji» версии 2.011 / 20180424, все отлично работает.

Как происходит сопоставление кодовой точки юникода с глифом?

Приложение (например, текстовый редактор) предоставляет подсистеме рендеринга шрифтов (Quartz? На macOS) текст Unicode и имя шрифта. Средство визуализации шрифтов анализирует кодовые точки текста и решает, является ли это простым текстом (например, латиницей, китайским языком, автономными смайликами) или сложным текстом (например, латиницей со многими отметками, тайским, арабским языками, смайликами с соединениями нулевой ширины). Средство визуализации находит соответствующие контуры в файле шрифта. Если файл не имеет требуемого символа, средство визуализации может использовать аналогичный шрифт или использовать настроенный резервный шрифт для плохой замены (белый ящик, черный знак вопроса и т. Д.) , Затем контуры подвергаются формированию , чтобы составить сложный глиф и разрыв строки. Наконец, средство визуализации шрифтов передает результат системе отображения.

Помимо формирования, очень мало этого связано с Юникодом или кодированием. Рендеринг шрифтов уже работал таким образом до появления Unicode, конечно же, файлы шрифтов и рендеринг были намного проще 30 лет назад. Кодирование имеет значение только тогда, когда кто-то хочет загрузить или сохранить текст из приложения.

Резюме: расследовать

  • Программное обеспечение для редактирования шрифтов Truetype / Opentype, чтобы вы могли видеть, что содержится в файлах
  • Средства визуализации шрифтов, в Linux посмотрите библиотеки pango и freetype.
0 голосов
/ 28 апреля 2019

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

Когда кодовая точка не поддерживается одним шрифтом, система может переключиться на другой, который это делает.Это особенно верно для веб-браузеров.Но, в конечном счете, если кодовая точка не поддерживается, отображается незаполненный прямоугольник.(Для этого нет символа, потому что это не символ. На самом деле, если вы смогли скопировать и вставить его как текст, это должен быть оригинальный символ, который не может быть отрисован.)

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

Другие программы обычно используют средства рендеринга операционной системы и, следовательно, доступные через нее шрифты.Как установить шрифт в операционной системе - это не вопрос программирования (если вы не включили шрифт в программу установки вашей программы).Для получения дополнительной информации вы можете посмотреть, подходит ли этот вопрос к сайту Ask Different (Apple) Stack Exchange.

...