Отключены символы юникода в шрифте? - PullRequest
0 голосов
/ 12 ноября 2019

Я редактирую файл шрифта woff с помощью FontForge (версия 20190801 для Windows 10), и я хотел бы добавить глиф для символа Unicode 0xD835 .

Однакополе для этого символа имеет крестик в верхнем поле, где обычно отображается символ юникода. Кроме того, его описание в верхнем баре «суррогатное высокое, не частного использования» (что это значит?), См. Изображения ниже

enter image description here

enter image description here

Я попытался скопировать глиф из другого символа и вставить его в поле 0xD835, получив это

enter image description here

но персонаж не отображается, когда я его использую. Более того, FontForge аварийно завершает работу, если я нажимаю «Информация о глифе».

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

Файл, над которым я работаю, cmunrm.woff шрифта Computer Modern Serif , доступен здесь . Вот прямая ссылка на файл woff .

1 Ответ

2 голосов
/ 12 ноября 2019

Но не существует такой вещи, как «символ Unicode D835». все, что находится между D800 и DFFF, само по себе недопустимо и может использоваться (но все еще не назначено) только в парах суррогатного кода с низким и высоким значением в кодировке UTF-16 для разрешения числа больше 16 бит в том, что составляет 16схема кодирования с битовой фиксированной шириной.

Вы, вероятно, даже не используете UTF-16 (поскольку ваш шрифт, вероятно, использует отдельные подтаблицы cmap UCS-2 и UCS-4), но чтобы убедиться, что никто не делает ничего смешного сэти кодовые точки, стандарт Unicode запрещает использование этих кодовых точек для чего-либо, кроме суррогатных пар .

См. https://www.unicode.org/versions/Unicode12.0.0/ch23.pdf pp890 для более авторитетной, подробной информациинайти в интернете информацию о суррогатных парах.

...