Что это значит, когда мой текст отображается в виде полей?
Вопрос
Я пытаюсь отобразить некоторый текст в своей программе, используя (скажем) Windows GDI, и некоторые символы Unicode отображаются в виде полей?Что случилось?
Смотрите также: Что это значит, когда мой текст отображается в виде вопросительных знаков?
Решение
Обычно это означает, что указанный символ Unicode недоступен в этом конкретном шрифте. Попробуйте сменить один из многонациональных шрифтов, он должен исчезнуть.
Другие советы
В Windows есть 2 распространенные проблемы с отображением, которые возникают при попытке отобразить символы Юникода:
текст иногда отображается в виде вопросительных знаков
- Это происходит, когда данные в Юникоде преобразуются в 8-битную кодировку набора символов (или технически многобайтовые символы), обычно через системную кодовую страницу (но в вызовах преобразования могут быть указаны и другие кодовые страницы).Если целевой 8-разрядный набор символов не включает необходимые символы, любые символы, не представленные в целевом наборе символов, преобразуются в вопросительные знаки.
текст иногда отображается в виде полей
- Это проблема со шрифтом, не имеющим glpyh для определенного символа.Поля отображаются при несоответствии символов Юникода в документе символам, поддерживаемым шрифтом.В частности, поля представляют символы, не поддерживаемые выбранным шрифтом.
Дело в том, что текст, который вы пытаетесь отобразить, содержит символы, которые не поддерживаются используемым шрифтом. Символ коробки является символом замены по умолчанию для текста Unicode, у которого нет шрифта в шрифте.
В Windows, если вы пытаетесь отобразить текст на разных языках, используйте шрифт, например Arial Unicode MS - это включает в себя глифы для огромного количества разных языков. Это «наименьший общий знаменатель»; шрифт - глифы, как правило, будут там, но обычно в них не хватает символов, и некоторые из глифов будут выглядеть немного странно рядом друг с другом.