Char.ConvertFromUtf32在Silverlight中不可用

时间:2010-10-12 00:39:34

标签: vb.net silverlight

我正在将WinForms应用程序转换为Silverlight(VB.NET)。我应该使用什么而不是Char.ConvertFromUtf32,因为它不能在Silverlight中使用?

2 个答案:

答案 0 :(得分:1)

UTF-32目前不是Silverlight的一部分,因此您必须找到解决限制的方法。我想你应该停下来思考为什么你需要阅读UTF32编码的文本。

  • 如果您正在从数据库或服务器上的文件中读取此类文本,我会执行转换服务器端(如果可能,我会将所有内容转换为UTF-8并获取一次性摆脱UTF-32数据。)

  • 如果要在客户端解析用户提供的文件,我会检测UTF-32编码并轻轻告诉用户不支持文件编码。 UTF32现在非常罕见,所以我想它不应该是一个非常常见的情况(但我不知道你的具体情况我可能错了。)

为了检测文件编码,你必须查看前几个字节(字节顺序标记) - 更多信息here,如果它们不存在,任务变得更加困难,并涉及某种基于启发式的方法在字符频率上。

答案 1 :(得分:0)

来自:http://msdn.microsoft.com/fr-fr/library/bb311038.aspx

您可以使用直接投射,例如:

// Get the character corresponding to the integral value.
string stringValue = Char.ConvertFromUtf32(value);
char charValue = (char)value;

小警告,它只能达到0xffff。它不适用于从0x10000到0x10ffff的高范围Unicode。

此外,如果您需要解析 \ uXXXX ,请尝试以下其他问题:How do convert unicode escape sequences to unicode characters in a .NET string