我正在本地化我的应用程序,并通过它有消息框来提醒用户某些事情。当我在文本区域中包含中文字符时,它们在VS2010中调试时看起来像一堆正方形,但是当通过绑定到属性的对象在UI中显示时,它们将转换为正确的字符。但是当代码直接调用messagebox.show(“中文字符”)时,它最终只显示一堆空方块。这是为什么?
答案 0 :(得分:2)
Silverlight中没有“双字节”这样的东西。所有字符串都以utf-16编码。双字节是从8位代码页的日子开始,以找到编码CJK文本的方法。您必须使用Encoding类将此类编码文本转换为utf-16。
看到显示为正方形的文本可能是因为字符是由于编码错误而成的控制代码。或者缺少对机器上安装的字体中的字形的支持。这也是一个快速消失的问题,你通常只在没有安装东亚字体支持的XP上使用它。