
Courier New имеет символ \u05D0 еврейская буква алеф
То же самое делают и некоторые другие шрифты, например, Miriam и David.
Я могу вставить это в блокнот.
Lucida Console не имеет персонажа. Карта персонажей показывает, что Lucida Console не имеет персонажа.
Но блокнот отображает его даже если установлен шрифт Lucida Console
Так какой же шрифт использует Блокнот?
решение1
В Windows 7 есть технология, которая называетсясоставной шрифт
который используется для описания международной привязки шрифтов и логики отката источник
Он позволяет создать виртуальный шрифт, связанный из множества шрифтов с ограниченным диапазоном определений символов.
Составной шрифт по умолчанию называетсяГлобальныйпользовательскийинтерфейси находится в файле
C:\Windows\Fonts\GlobalUserInterface.CompositeFont
.
Вы можете использовать большойBabelКартаинструмент для ознакомления и понимания реализации Unicode, составных шрифтов и связанных с ними вещей.
Также проверьтеРезервный шрифтподразделЗамечанияраздел этогоСтатья MSDNузнать интересную информацию о том, как создается такой составной шрифт и каковы правила отката.
Поиск шрифта для символа (на основе вышеуказанной информации):
- В любом текстовом редакторе/просмотрщике откройте файл
C:\Windows\Fonts\GlobalUserInterface.CompositeFont
. - В теге
<FontFamily.FamilyMaps>
найдите диапазон определений для вашего персонажа. Найдите тег
FontFamilyMap
, содержащий ваш диапазон в егоUnicode
атрибуте, и получите шрифт (или список шрифтов), указанный для этого диапазона (он хранится в атрибутеTarget
).
Пример:в случае характера05D0диапазон, найденный в файле,0590-05FF(иврит)
и варианты замены шрифтов:
"Segoe UI, Tahoma, Arial, Arial Unicode MS, Microsoft Sans Serif, Lucida Sans Unicode"
- Если был только один шрифт, он у вас есть. В противном случае, давайте проверим список по порядку: запустите BabelMap
- Перейти к указанному символу
- Переключить радиокнопки сСоставной шрифткОдин шрифт
или альтернативно: перейти в менюШрифты>Покрытие шрифта...и нажмитеРассчитатькнопка - Переключайтесь на шрифты в том порядке, в котором они указаны на шаге.3. Первый шрифт, в котором отображается глиф, — это ваш шрифт.
Примечание:Доступно 4 файла составных шрифтов, но я проверил, что в вашем случае правильным является GlobalUserInterface.CompositeFont
.
Этот метод надежен, поскольку при поиске по определениям вы делаете то же самое, что и Windows.
решение2
Ответ Миро блестящий, я просто напишу его немного по-другому.
Существует четыре файла составных шрифтов.
Эти четыре -
C:\Windows\Fonts>dir *composite* /s/b
C:\Windows\Fonts\GlobalMonospace.CompositeFont
C:\Windows\Fonts\GlobalSansSerif.CompositeFont
C:\Windows\Fonts\GlobalSerif.CompositeFont
C:\Windows\Fonts\GlobalUserInterface.CompositeFont
C:\Windows\Fonts>
Глядя на них, можно увидеть, например, что GlobalMonospace.CompositeFont
имеет 0590-06FF и перечисленные резервные шрифты, только один, это Courier New, который имеет Aleph. Но Миро определил, что это не тот композитный файл, который используется, и что тот, который используется, этоGlobalUserInterface.CompositeFont
Открыть этот файл C:\Windows\Fonts\GlobalUserInterface.CompositeFont
Алеф - это \u05D0
то, что вам придется прокрутить файл вниз, чтобы добраться до того места, которое я показываю на картинке, но это раздел, на который нужно обратить внимание.
В составном файле шрифтов перечислено семейство шрифтов, которые можно использовать в качестве резервных шрифтов для различных диапазонов символов Unicode, включая 0590-06FF
(этот диапазон включает 05D0/aleph)
<FontFamilyMap
Unicode = "0000-052F, 0590-06FF, 0750-077F, 1D00-1FFF, 2C60-2C7F, FB00-FB0F, FB1D-FBFF"
Target = "Segoe UI, Tahoma, Arial, Arial Unicode MS, Microsoft Sans Serif, Lucida Sans Unicode"
Scale = "1.0"/>
Charmap может достигать FFFF, что достаточно. Charmap показывает, что его нет в segoeUI. Но он есть в Tahoma.
Babelmap интересен тем, что может показывать символы после FFFF (в данном случае это не обязательно), а также может показывать, какие шрифты в вашей системе имеют определенный символ unicode. Но чтобы увидеть, какой шрифт на самом деле используется на практике блокнотом в качестве резервного шрифта, вам нужно проверить файл GlobalUserInterface.CompositeFont. Затем найдите в charmap или babelmap первый шрифт с нужным вам символом глифа/unicode.
Babelmap имеет составные шрифты, но я думаю, что они пользовательские, а не конкретно те, которые использует Windows. Но можно было бы с пользой использовать babelmap для поиска шрифта, содержащего символ Unicode, или для просмотра символов в шрифте, даже за пределами FFFF.