如何以正确的字体呈现unicode字符? (C#/的WinForms)

时间:2008-09-19 16:40:11

标签: c# winforms unicode rendering

我的应用程序正确处理不同类型的字符集,但仅在内部 - 当在标准WinForms标签和文本框中显示文本时,它似乎有中文字符问题。

问题似乎是使用的字体(Tahoma),因为当我复制和粘贴文本或在调试器中查看它时,它会正确显示。此外,当我将MS Mincho设置为要使用的字体时,屏幕上的字符看起来还不错。

当然,我不想在整个应用程序中使用MS Mincho。我是否必须根据显示的字符切换字体,还是我错过了更好的方法?

2 个答案:

答案 0 :(得分:4)

在Windows 2000中引入的

UniScribe应该透明地处理这个问题,这意味着它会自动使用不同的字体(如Mincho)来表示字体中不存在的字符选择。这就是它在调试器中看起来正确的原因,即使调试器中使用的字体不包含中文字符。也许你正在做一些禁用UniScribe的东西,或者以某种其他方式存在问题。也许如果您可以粘贴一些代码,则更容易识别问题。

答案 1 :(得分:0)

所有字体都没有可以用unicode表示的所有字形的数据。您必须找到具有所需子集的合适字体。

编辑:只是为了澄清,字体覆盖了整个unicode范围,但你现在使用的字体不是其中之一。