Как сделать символы юникода правильным шрифтом? (С # / WinForms) - PullRequest
6 голосов
/ 19 сентября 2008

Мое приложение корректно обрабатывает различные типы наборов символов, но только внутри - когда дело доходит до отображения текста в стандартных ярлыках WinForms и текстовых полях, кажется, что есть проблемы с китайскими символами.

Проблема, похоже, заключается в используемом шрифте (Tahoma), потому что когда я копирую и вставляю текст или просматриваю его в отладчике, он отображается правильно. Также, когда я установил MS Mincho в качестве используемого шрифта, символы на экране выглядят хорошо.

Конечно, я не хочу использовать MS Mincho во всем приложении. Нужно ли переключать шрифт в зависимости от отображаемых символов или есть лучший способ, который я пропустил?

Ответы [ 2 ]

4 голосов
/ 25 сентября 2008

UniScribe , который был представлен в Windows 2000, должен обрабатывать это прозрачно, то есть автоматически использовать другой шрифт (например, Mincho) для символов, которых нет в шрифте выбрал. Вот почему он выглядит правильно в отладчике, даже если шрифт, используемый в отладчике, не содержит китайских символов. Возможно, вы делаете что-то, что отключает UniScribe, или проблематично другим способом. Возможно, если бы вы могли вставить некоторый код, было бы легче определить проблему.

0 голосов
/ 19 сентября 2008

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

edit: просто чтобы уточнить, есть шрифты, которые охватывают весь диапазон Unicode, но тот, который вы используете сейчас, не один из них.

...