C# WebClient.DownloadString结果与浏览器结果2不匹配

C# WebClient.DownloadString结果与浏览器结果2不匹配,c#,encoding,webclient,downloadstring,C#,Encoding,Webclient,Downloadstring,以下代码: WebClient wc=新的WebClient(); wc.Encoding=Encoding.UTF8; 字符串Url=”http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=59266699437480384&c=64"; 返回wc.DownloadString(Url); 代码返回: �Q�T�MP�J�A|�^D����~���C�"�����l� ��;I&3=j=�iG�H9Ȓ�J�^� �j��T

以下代码:

WebClient wc=新的WebClient();
wc.Encoding=Encoding.UTF8;
字符串Url=”http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=59266699437480384&c=64";
返回wc.DownloadString(Url);
代码返回:

�Q�T�MP�J�A|�^D����~���C�"�����l� ��;I&3=j=�iG�H9Ȓ�J�^� �j��T�Q=HH�'Qm�������1�hF�4�*�������{�x�\o?
当我在任何web浏览器中访问该URL时,我会得到:

12:29:45,A ,3540,3567,3600,3621,3690,3515,140,238204,849582597,1,20140914,122945;;1@2825@3523@3583@1700@1,1@2000@3522@3600@8700@2,1@500@3511@3640@2500@1,;19774,99736,1
有没有办法得到正确的字符串

另外,我使用这个在线解码器,但我没有得到正确的答案:
这不是编码问题,我认为它与压缩有关,在本例中是gzip。阅读
这应该可以解决您的问题。

这不是编码问题,我认为它与压缩有关,在本例中是gzip。阅读
public class WC : WebClient
{
    protected override WebRequest GetWebRequest(Uri url)
    {
        var request = base.GetWebRequest(url) as HttpWebRequest;
        request.AutomaticDecompression = DecompressionMethods.GZip;

        return request;
    }
}
这会解决你的问题

public class WC : WebClient
{
    protected override WebRequest GetWebRequest(Uri url)
    {
        var request = base.GetWebRequest(url) as HttpWebRequest;
        request.AutomaticDecompression = DecompressionMethods.GZip;

        return request;
    }
}
用法:

var url = "http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=59266699437480384&c=64";
var wc = new WC();
wc.Encoding = Encoding.UTF8;
var result = wc.DownloadString(url);
用法:

var url = "http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=59266699437480384&c=64";
var wc = new WC();
wc.Encoding = Encoding.UTF8;
var result = wc.DownloadString(url);

在Linqpad中,您可以运行以下代码,即Webclient的变体。如图所示,这是由于浏览器自动处理的Gzip压缩。


在Linqpad中,您可以运行以下代码,即Webclient的变体。如图所示,这是由于浏览器自动处理的Gzip压缩。