我正在制作一个使用谷歌翻译翻译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。 任何人都有任何想法?