中文翻译结果是问号(???? ...)

时间:2015-02-03 21:20:15

标签: vba

长话短说,作为测试,我正在将数据从一个单元格读入一个例程,将非英语单词/符号发送给Microsoft翻译。返回后,它将结果写入单独的单元格中。不幸的是,因为我在处理XMLHTTP时缺乏经验,所以我正在努力解决这个问题。

简单的香草短缺它。现在这是长版本。我希望我说得够清楚。请原谅我,但请记住我是VBA这方面的新手......

我试图利用微软开发并由一个名叫Patrick O' Beirne的人编辑的例程,因为微软处理令牌的方式已经发生了变化...... Patricks代码在这里:{{3 }}

长版...... 我希望将中文数据加载到使用MSXML2.XMLHTTP的例程中,以便在Microsoft上进行GET翻译。

此例程适用于西班牙语或法语单词,但为中文符号吐出问号。这可能与中文符号是双字节(?)...

有关

这是代码。我一直追踪到MSHttpRequest函数。看起来它将数据加载到oH中,但当它返回到oH.ResponseText时,符号会发生变化。这纯粹是我的猜测。

无论如何,我的目标是将中文符号发送到Microsoft的翻译服务器并以英文返回。

Function MSHttpRequest(sRequest As String) As String
Dim sURL As String, oH As MSXML2.XMLHTTP, sToken As String

sURL = "http://api.microsofttranslator.com/V2/Http.svc/" & sRequest
sToken = GetAccessToken()
Set oH = CreateObject("MSXML2.XMLHTTP")

oH.Open "GET", sURL, False
oH.setRequestHeader "Authorization", "Bearer " & sToken
oH.send
MSHttpRequest = oH.responseText
Set oH = Nothing
End Function

感谢任何帮助。

谢谢, 史蒂夫

2 个答案:

答案 0 :(得分:0)

有点晚,但我现在才发现这一点。我就是那个人;-) 我现在更新了代码以处理UTF-8,请参阅

上的帖子

https://sysmod.wordpress.com/2012/01/09/microsoft-translator-vba-code-sample/

请链接到帖子而不是.bas文件,因为文件名可能会更改。

答案 1 :(得分:0)

发布回答很晚,但可能就是这样。

您需要更改Windows中的语言设置,以便VBA可以访问您正在使用的语言。

按照下面的说明(注册表部分除外),你应该没问题。

How To Display Foreign Characters In Excel VBE