0
我有一個文件包含從數據庫讀取的UTF32。 我希望「你好」變成H\0\0\0i\0\0\0
,但它實際上是\0\0\0H\0\0\0i
,空字符在前面。解碼「奇怪」的utf32格式
有誰知道這可能發生,以及我如何解碼這使所有數據保持完好?
我有一個文件包含從數據庫讀取的UTF32。 我希望「你好」變成H\0\0\0i\0\0\0
,但它實際上是\0\0\0H\0\0\0i
,空字符在前面。解碼「奇怪」的utf32格式
有誰知道這可能發生,以及我如何解碼這使所有數據保持完好?
您似乎以網絡字節順序獲取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);
正是我一直在尋找!謝謝! – user1149942
您使用什麼語言? – IanPudney
對不起,我正在使用c# – user1149942
這是一個大型的endian數據庫嗎?你如何閱讀這些數據? – JeffRSon