gpt4 book ai didi

C# 将字节数组转换为字符串,使用序言或默认编码

转载 作者:行者123 更新时间:2023-11-30 17:23:42 25 4
gpt4 key购买 nike

我正在尝试将字节数组转换为字符串。字节数组包含一个前导码(如果使用的编码器有其中之一),如果字节数组中没有存储前导码,则必须指定默认编码。

我的代码是这样的

public static string ArrayToStringUsingPreambleOrDefaultEncoder(byte[] bytes, Encoding defaultEncoder, out Encoding usedEncoder) {
using (var mem = new MemoryStream(bytes))
using (var reader = new StreamReader(mem, defaultEncoder, true)) {
string result = reader.ReadToEnd();
usedEncoder = reader.CurrentEncoding;
return result;
}
}

但它并没有像我预期的那样发挥作用。如果未找到前导码,如何使 StreamReader 使用前导码指定的编码或默认编码。我真的必须手动将所有已知编码器的前导码与数组的开头进行比较以找到正确的编码器吗?

最佳答案

来自 MSDN :“StreamReader 专为特定编码的字符输入而设计”。所以是的,你确实需要从序言中嗅出正确的编码来做到这一点。这里有一个示例方法可以执行此操作:

http://www.personalmicrocosms.com/Pages/dotnettips.aspx?c=15&t=17

编辑:以上链接已损坏,但旧页面可在 Wayback Machine Internet Archive 找到:https://web.archive.org/web/20090203034127/http://www.personalmicrocosms.com/Pages/dotnettips.aspx?c=15&t=17 *

关于C# 将字节数组转换为字符串,使用序言或默认编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1928419/

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