我尝试了很多方法来从URL反序列化这个xml。但由于我认为是编码问题,所以没有一个成功。
如果我右键单击下载,然后从我的C驱动器反序列化,它可以正常工作。
所以我决定先尝试下载文件然后处理它。但它通过代码下载的文件也是错误的编码!
我不知道从哪里开始,但我想在下载时可能会强制使用UTF-8或UTF-16编码?
以下是下载代码:
using (var client = new WebClient())
{
client.DownloadFile("http://example.com/my.xml", "my.xml");
}
答案 0 :(得分:2)
试试这个
using (var client = new WebClient())
{
client.Encoding = System.Text.Encoding.UTF8;
client.DownloadFile("http://example.com/my.xml", "my.xml");
}
答案 1 :(得分:0)
该文件实际上是gzip格式。尽管它是一个xml网址。
我的连接一定是接受了gzip,所以服务器响应了这样的。即使我尝试了几种不同的方法和不同的变化。 (下载/字符串流,从URL解析字符串等)
我的解决方案是下载,然后在反序列化之前解压缩gzip文件。告诉服务器不要发送gzip不起作用。但对某些人来说可能是可能的。