gpt4 book ai didi

c# - .NET BinaryReader 不遵守编码

转载 作者:行者123 更新时间:2023-11-30 13:59:40 27 4
gpt4 key购买 nike

当使用 System.IO.BinaryReader 读取二进制文件时,使用任何多字节读取方法时字节顺序似乎不受影响。

BinaryReader br = new BinaryReader(fs, System.Text.Encoding.BigEndianUnicode);

BinaryReader br = new BinaryReader(fs, System.Text.Encoding.Unicode);

正在为我产生相同的结果。

这让我很沮丧,因为我在读取数据结构时必须不断地颠倒字节顺序。

Screenshot - Big Endian Unicode

Screenshot - Little Endian Unicode

我已经在 .NET 3 到 4.5 上对此进行了测试

最佳答案

BinaryReader 仅在处理 string 数据时使用 Encoding(几乎就是 ReadString())。 ReadBytes 等不涉及Encoding - 它只是读取二进制数据。由于您只调用 ReadBytes,因此永远不会查看此 (Encoding)。

如果数据乱序,则听起来该文件不是使用 BinaryWriter 创建的。如果它不是用 BinaryWriter 创建的,那么 BinaryReader 可能就没那么有用了——你可以只使用 Stream

关于c# - .NET BinaryReader 不遵守编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12907677/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com