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

Vba 中文翻译结果是问号(????…),vba,Vba,长话短说,作为一项测试,我正在将数据从一个单元格读取到一个例程中,该例程将非英语单词/符号发送给Microsoft translator。返回时,它将结果写入一个单独的单元格。不幸的是,因为我在处理XMLHTTP时缺乏经验,所以我在这个问题上遇到了麻烦 这是纯香草味的,少了一点。现在是长版本。我希望我能把这一点讲清楚。请原谅我,但请记住,我是VBA的新手 我正试图利用由微软开发并由一个叫Patrick O'Beirne的人编辑的例程,因为微软处理代币的方式已经发生了改变。。帕特里克代码在这里:

长话短说,作为一项测试,我正在将数据从一个单元格读取到一个例程中,该例程将非英语单词/符号发送给Microsoft translator。返回时,它将结果写入一个单独的单元格。不幸的是,因为我在处理XMLHTTP时缺乏经验,所以我在这个问题上遇到了麻烦

这是纯香草味的,少了一点。现在是长版本。我希望我能把这一点讲清楚。请原谅我,但请记住,我是VBA的新手

我正试图利用由微软开发并由一个叫Patrick O'Beirne的人编辑的例程,因为微软处理代币的方式已经发生了改变。。帕特里克代码在这里:

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

这个程序在西班牙语或法语单词上效果很好,但在中文符号上会打问号。这可能与中文符号是双字节有关

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

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

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
感谢您的帮助

谢谢,
史蒂夫有点晚了,但我现在才找到这个。我就是那个家伙- 我现在已经更新了处理UTF-8的代码,请参阅


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

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

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

除了注册表部分之外,请遵循下面的操作,您应该可以


这是一个Unicode/ascii的东西