使用 .net ASCIIEncoding 类将字节数组解码为字符串时,我是否需要编写一些代码来检测和删除字节顺序标记,或者是否可以告诉 ASCIIEncoding 不将字节顺序标记解码为字符串?
这是我的问题,当我这样做时:
string someString = System.Text.ASCIIEncoding.Default.GetString(someByteArray)
someString 看起来像这样:
<?xml version="1.0"?>.......
然后当我打电话给这个时:
XElement.Parse(someString)
由于前三个字节而引发异常: EF BB BF - UTF8 字节顺序标记。所以我想如果我指定UTF8编码,而不是默认,像这样:
System.Text.ASCIIEncoding.UTF8.GetString(someByteArray)
ASCIIEncoding 不会尝试将字节顺序标记解码为字符串。当我将返回的字符串复制到 notepad++ 中时,我可以看到一个 ? XML 标记前面的字符。所以现在字节顺序标记被解码为一个垃圾字符。在这种情况下,停止字节顺序标记被解码的最佳方法是什么?