在我的.NET 3.5 C#应用程序中,我正在将Unicode编码的字节数组转换为字符串。
字节数组如下所示:
领头字符
目前,我使用的解决方法是
但真正的问题是,
{255, 254, 85, 0, 83, 0, 69, 0}
使用 Encoding.Unicode.GetString(var)
,我将字节数组转换为字符串,返回结果为:
{65279 '', 85 'U', 83 'S' , 69 'E'}
领头字符
65279
似乎是一种零宽度不换行空格,在Unicode编码中用作字节顺序标记,其外观导致应用程序的其余部分出现问题。目前,我使用的解决方法是
var.Trim(new char[]{'\uFEFF','\u200B'});
,这个方法效果很好。但真正的问题是,
GetString
不应该负责删除字节顺序标记吗?或者在转换字节数组时我做错了什么?
\u200B
? - xanatos