解码“strange"utf32格式

本文关键字:utf32 格式 quot strange 解码 | 更新日期: 2023-09-27 18:18:08

我有一个包含从数据库读取的UTF32的文件。我希望"Hi"成为H'0'0'0i'0'0'0,但它实际上是'0'0'0H'0'0'0i,前面有空字符。

有人知道这是如何发生的,以及我如何能够解码这留下所有数据完好无损?

解码“strange"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);