我正在将WinForms应用程序转换为Silverlight(VB.NET)。我应该使用什么而不是Char.ConvertFromUtf32,因为它不能在Silverlight中使用?
答案 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