Microsoft Sans Serif字体未在中文本地化Windows中使用

时间:2011-08-12 17:19:52

标签: c# winforms windows-7 localization

情景:

与“中文”Windows 7企业版相比,UI界面元素似乎在美国英语Windows 7企业版上使用不同的字体,即使所有本地化包和语言都设置为英语。在WinForms代码隐藏中,FontFamily没有显式定义,并且依赖于默认值。

英文:

English

中国:

Chinese

几个问题:

1)中文Windows使用的字体是什么? 2)这种安装有什么不同会导致它使用该字体?
3)如何设置复制环境?它是Windows 7上的安装时选项,在已安装的Windows 7实例上切换UI和System Culture时无法获得吗?

FWIW:

我检查了C:\ Windows \ Fonts,它的版本和大小与“Microsoft Sans Serif Regular”相同

1 个答案:

答案 0 :(得分:5)

如果您没有对字体做任何操作,默认字体后退机制可能会使用SimSun作为标准字体的字体替换。

替换字体的原因是中文操作系统上的默认字体需要显示中文字符。当然由于规模庞大,MS Sans Serif没有定义中文字形。

为避免此问题,您可能希望在资源文件中“硬编码”字体信息 - 通常简单的大小修改(即设置9而不是8.25)会有所帮助。请注意,但如果你这样做,中文字符可能会出现损坏 - 如果我没记错,它将完全关闭字体后退机制。它可能适用于不会被翻译成中文的“静态”UI元素,但对于允许用户输入自由格式文本的文本框和类似控件来说是完全不可接受的。

最好让它通过,而不是解决渲染问题。我相信中国用户只是习惯于那种特定的外观和感觉。