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