我想使用 C# 和文件的当前编码读取 byte[]
。
如 MSDN 中所写,当构造函数没有编码时,默认编码将为 UTF-8:
var reader = new StreamReader(new MemoryStream(data)).
我也试过这个,但仍然得到 UTF-8 格式的文件:
var reader = new StreamReader(new MemoryStream(data),true)
我需要用当前编码读取byte[]
。
最佳答案
文件没有编码。字节数组没有编码。字节没有编码。编码是将字节转换为文本,反之亦然。
您在文本编辑器等中看到的实际上是程序魔术:编辑器会尝试不同的编码,然后猜测哪个最有意义。这也是您使用 bool 参数启用的功能。如果这不能产生您想要的结果,那么这个魔法就失败了。
var reader = new StreamReader(new MemoryStream(data), Encoding.Default);
将使用操作系统/位置特定的默认编码。如果那仍然不是你想要的,那么你需要完全明确,并告诉流阅读器使用什么确切的编码,例如(作为一个例子,你说你不想要 UTF8):
var reader = new StreamReader(new MemoryStream(data), Encoding.UTF8);
关于c# - 如何使用 streamreader 读取当前编码的 byte[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16598021/