DownloadString的Webclient编码

时间:2017-08-02 07:58:34

标签: vb.net

我正在制作一个使用谷歌翻译翻译CSV文件的程序。这是我的代码:

Dim sURL As String
    Dim oWebClient As New WebClient
    Dim sResult As String

    oWebClient.Encoding = System.Text.Encoding.ASCII

    If Not IsNothing(sTo) Then
        ' Construct URL
        sURL = String.Format("http://www.google.com/translate_t?hl=en&ie=UTF8&text={0}&langpair={1}", sString, sFrom & "|" & sTo)
        sResult = oWebClient.DownloadString(sURL)

        sResult = sResult.Substring(sResult.IndexOf("TRANSLATED_TEXT="))
        sResult = sResult.Substring(0, sResult.IndexOf(";"))

        ' Get the string between the '' after Translated Text
        sResult = sResult.Substring(sResult.IndexOf("'") + 1, sResult.Count - 18)
    Else
        sResult = ""
    End If

现在我正在尝试翻译成法语,但是给定的结果并没有重音符号。例如Rejeté变成:'Rejet?'。 sResult中的字符串字面上包含“TRANSLATED_TEXT ='Rejet?'”。

进行了一些谷歌搜索,起初我将我的webclient编码为UTF-8,发现ASCII应该更好,因为ASCII实际上有这些字符。但是ASCII也不起作用。

我一直试图弄清楚HttpUtility是否可以帮助我,但我真的不明白它是如何工作的。 HttpUtility

任何有见解的人? 提前谢谢!

编辑:这是我的结果的html可视化工具的截图,downloaddata方法提供与downloadstring相同的结果。 HTML Visualizer

编辑:我差点解决了!使用Tom的链接并将编码调整为:

            sResult = Encoding.GetEncoding("iso-8859-1").GetString(oWebClient.DownloadData(sURL))

让我更接近,Rejeté现在真的出来了。但出于某种原因 D'协议出现为D \ x26#3。 任何人都有任何想法?

0 个答案:

没有答案