我的应用程序正确处理不同类型的字符集,但仅限于内部 - 在标准 WinForms 标签和文本框中显示文本时,中文字符似乎存在问题。
问题似乎是使用的字体(Tahoma),因为当我复制和粘贴文本或在调试器中查看它时,它会正确显示。此外,当我将 MS Mincho 设置为要使用的字体时,屏幕上的字符看起来还不错。
当然,我不想在整个应用程序中使用 MS Mincho。我是否必须根据显示的字符切换字体,还是我错过了更好的方法?
UniScribe是在 Windows 2000 中引入的,它应该透明地处理这个问题,这意味着它将自动为您选择的字体中不存在的字符使用不同的字体(例如 Mincho)。这就是为什么它在调试器中看起来是正确的,即使在调试器中使用的字体不包含中文字符。也许您正在做一些禁用 UniScribe 的事情,或者以其他方式存在问题。也许如果您可以粘贴一些代码,则更容易识别问题。
所有字体都没有可以用 unicode 表示的所有字形的数据。您必须找到具有所需子集的合适字体。
编辑:澄清一下,有些字体涵盖了整个 unicode 范围,但您现在使用的字体不是其中之一。