我正在尝试在 Windows Phone 应用程序中读取使用 WebClient.OpenReadAsync() 下载的 xml。问题是,有时,xml 不会带有 UTF8 编码,它可能带有其他编码,例如“ISO-8859-1”,因此重音变得混乱。
我能够使用以下代码完美加载 ISO-8858-1 xml 之一:
var buff = e.Result.ReadFully(); //Gets byte array from the stream
var resultBuff = Encoding.Convert(Encoding.GetEncoding("ISO-8859-1"), Encoding.UTF8, buff);
var result = Encoding.UTF8.GetString(resultBuff, 0, resultBuff.Length);
它与 ISO-8859-1 完美配合,文本完美,但它弄乱了 UTF8 xml。
所以,这里的想法是在执行此操作之前检测字节数组或流的编码,然后如果不是UTF8,它将使用上面的方法将数据与检测到的编码进行转换。
我正在寻找一些可以检测互联网上编码的方法,但我找不到任何方法!有人知道我怎么能在 Windows Phone 上做这种事情吗?
谢谢!