小编Chr*_*son的帖子

如何告诉ASCIIEncoding类不要解码字节顺序标记

使用.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标记前面的字符.所以现在字节顺序标记被解码成单个垃圾字符.在这种情况下,停止解码字节顺序标记的最佳方法是什么?

.net ascii byte-order-mark utf-8

1
推荐指数
1
解决办法
3561
查看次数

标签 统计

.net ×1

ascii ×1

byte-order-mark ×1

utf-8 ×1