2013-06-12 47 views
0

我有一個文件包含從數據庫讀取的UTF32。 我希望「你好」變成H\0\0\0i\0\0\0,但它實際上是\0\0\0H\0\0\0i,空字符在前面。解碼「奇怪」的utf32格式

有誰知道這可能發生,以及我如何解碼這使所有數據保持完好?

+0

您使用什麼語言? – IanPudney

+0

對不起,我正在使用c# – user1149942

+0

這是一個大型的endian數據庫嗎?你如何閱讀這些數據? – JeffRSon

回答

0

您似乎以網絡字節順序獲取utf-32,而不是您所期望的相反順序。任何一個命令對於utf-32都是有效的。

當你問UTF-32可能會由該數據庫的配置來控制數據庫使用什麼字節順序。

您可以使用IPAddress.NetworkToHostOrder單個碼點轉換,或UTF32Encoding適當的字節順序轉換成字符串:

 var bytes = new byte[] {0,0,0,(byte)'H',0,0,0,(byte)'i'}; 
     var encoding = new UTF32Encoding(true, false); 
     var text = encoding.GetString(bytes); 

     Console.WriteLine(text); 
+0

正是我一直在尋找!謝謝! – user1149942