我遇到一个问题,vb.net中的web请求的响应字符串不可读

我遇到一个问题,vb.net中的web请求的响应字符串不可读,vb.net,response,webrequest,Vb.net,Response,Webrequest,我使用以下代码向网站发送webrequest Dim webClient As New System.Net.WebClient webClient.Encoding = Encoding.UTF8 Dim result As String = webClient.DownloadString("http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=9340069258093236&c=42+") 但结果不是像下面这样可读的字符串:

我使用以下代码向网站发送webrequest

Dim webClient As New System.Net.WebClient
webClient.Encoding = Encoding.UTF8
Dim result As String = webClient.DownloadString("http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=9340069258093236&c=42+")
但结果不是像下面这样可读的字符串:

ChrW(31) & "�" & vbBack & vbNullChar & "w�J]" & vbNullChar & "�u�Y�" & ChrW(28) & "E" & ChrW(16) & "��2/� %�=�m��" & vbFormFeed & "�" & vbNullChar & "�" & vbVerticalTab & ChrW(18) & "�b���E" & ChrW(15) & ChrW(18) & "F2^b���2#�-G��" & ChrW(7) & "=�Ǘ%����" & vbBack & "q~��" & ChrW(31) & "{ۿ�lo�" & vbFormFeed & "]fn�̏�>�g�[��]K�'����x/�""l�" & .......................

我尝试了其他http web请求方法和编码,但结果是一样的。

正如所建议的,问题是Gzip的响应编码。 例如,您可以使用诸如Fiddler之类的工具来查看它

您可以使用HttpWebRequest类而不是WebClient和设置AutomaticDecompression属性来实现所需:

    Dim req As HttpWebRequest = WebRequest.Create("http://www.tsetmc.com/tsev2/data/instinfodata.aspx?i=9340069258093236&c=42+")
    req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
    req.KeepAlive = True
    req.AutomaticDecompression = DecompressionMethods.GZip
    Dim result As String
    Using response As HttpWebResponse = req.GetResponse()
        Using respStream As IO.Stream = response.GetResponseStream()
            Using sReader As IO.StreamReader = New IO.StreamReader(respStream)
                result = sReader.ReadToEnd()
            End Using
        End Using
    End Using

编码错误。好的。但是如何修复呢?