2010-10-12 59 views

回答

1

UTF-32目前不是Silverlight的一部分,所以你必須找到解決方法。我想你應該停下來想一想爲什麼你需要閱讀UTF32編碼的文本。

  • 如果你正在閱讀從數據庫或服務器上的文件這樣的文字,我會執行轉換服務器端(如果可能的話我會一切都轉換爲UTF-8和擺脫UTF的-32數據在一個鏡頭)。

  • 如果您正在解析客戶端上的用戶提供的文件,我會檢測到UTF-32編碼,並輕輕地告訴用戶文件編碼不受支持。現在UTF32是非常罕見的,所以我認爲它不應該是一個非常常見的情況(但我不知道你的確切情況可能是錯的)。

爲了檢測編碼,你必須看看前幾個字節(字節順序標記) - 更多信息here,該文件,如果它們不存在的任務變得更加困難,涉及到某種啓發的基礎在字符頻率上。

+0

解析JSON是常見的,你不能要求任何人改變'\ u0000'或'\ u001F'到另一個表示,因爲它在JSON中是唯一的。 – 2014-08-31 21:00:05

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

相關問題