0

我正在本地化我的应用程序,并通过它有消息框来提醒用户某些事情。当我在文本区域中包含中文字符时,它们在 VS2010 中调试时看起来像一堆正方形,但是当通过绑定到属性的对象在 UI 中显示时,它们会转换为正确的字符。但是当代码直接调用 messagebox.show("chinese characters") 时,它最终只会显示一堆空方块。为什么是这样?

4

1 回答 1

2

Silverlight 中没有“双字节”之类的东西。所有字符串都以 utf-16 编码。双字节是 8 位代码页时代的一种破解方法,用于寻找一种对 CJK 文本进行编码的方法。您必须使用 Encoding 类将此类编码文本转换为 utf-16。

看到显示为正方形的文本可能是因为字符是由于编码错误而导致的控制代码。或者缺少对机器上安装的字体中的字形的支持。这也是一个迅速消失的问题,您通常只能在没有安装东亚字体支持的 XP 上安装它。

于 2012-05-25T20:09:58.407 回答