C#XML下载错误编码

时间:2016-04-28 13:16:30

标签: c# xml encoding utf-8 utf-16

我尝试了很多方法来从URL反序列化这个xml。但由于我认为是编码问题,所以没有一个成功。

如果我右键单击下载,然后从我的C驱动器反序列化,它可以正常工作。

所以我决定先尝试下载文件然后处理它。但它通过代码下载的文件也是错误的编码!

我不知道从哪里开始,但我想在下载时可能会强制使用UTF-8或UTF-16编码?

以下是下载代码:

using (var client = new WebClient())
{
    client.DownloadFile("http://example.com/my.xml", "my.xml");
}

How to download a file from a URL in C#?

下载时的文件图像 enter image description here

2 个答案:

答案 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不起作用。但对某些人来说可能是可能的。