我有一个本地化问题。
我的一位勤奋的同事用字典中包含的常量替换了整个应用程序中的所有字符串。一旦用户选择一种语言(默认为英语,但目标语言是德语、西班牙语、法语、葡萄牙语、普通话和泰语),该词典就会在其中放置各种字符串。
为了测试此功能,我们希望更改一个按钮以包含具有 ñ 字符的文本,该字符以西班牙语和 Arial Unicode MS 字体(我们在整个应用程序中使用)显示。
问题是,ñ 显示为一个方块,就好像程序不知道如何显示它一样。当我调试从磁盘读取的特定字符串时,调试器也会将该字符报告为方块。
那么失败在哪里呢?我觉得可能有几个地方:
1) 记事本可能无法识别 unicode,因此此处显示的 ñ 与 vs2008 所期望的不同,因此程序将字符解释为正方形(编辑:记事本显示与 vs 相同的字符;即,它们都显示ñ. 在同一个地方。)。
2) vs2008 无法处理ñ。我觉得非常非常难以相信。
3)文字读入正确,但是vs2008的默认字体无法显示,这也是调试器显示正方形的原因。
4)文本没有正确读入,我应该使用常规 StreamReader 以外的东西来获取字符串。
5) 文本被正确读入,但 C# 中默认的 String 类处理不好。我觉得非常非常难以相信。
6) 我拥有的 Arial Unicode MS 版本没有ñ,尽管它被http://www.fileinfo.info列为 50k 个字符之一。
还有什么我可以遗漏的吗?
谢谢你的帮助!