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

问题描述 投票:0回答:3

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

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

我正在尝试利用由 Microsoft 开发并由一个名叫 Patrick O'Beirne 的人编辑的例程,因为 Microsoft 处理令牌的方式据说已经发生了变化。Patrick 的代码在这里:http://www.sysmod。 com/MSTranslator.bas.

长版... 我希望将中文数据加载到使用 MSXML2.XMLHTTP 执行 GET 的例程中,然后将其发送到 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

如有任何帮助,我们将不胜感激。

谢谢, 史蒂夫

vba
3个回答
0
投票

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

上的帖子

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

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


0
投票

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

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

按照下面的操作(除了注册表部分)就可以了。

如何在Excel VBE中显示外文字符


0
投票

输入外语就完美了,您的加密货币顺利处理和交付的方式将改变您的生活🫵🏻👩🏻u200d🦲🤘🏻

© www.soinside.com 2019 - 2024. All rights reserved.