【发布时间】:2018-06-19 12:09:39
【问题描述】:
我有一个发送 REST API 请求并获得响应的 VBA 程序。
我使用 WinHttp.WinHttpRequest 发送请求,但响应文本不支持日语。
这意味着如果 REST 服务器返回带有日语的结果,则 VBA 中的 HTTP 响应文本将是奇怪的字符(例如?aa??a)。
我尝试使用 Accept-Language = ja-JP, Charset = UTF-8...设置RequestHeader...但它不起作用。
请帮我解决这个问题。
我的代码在这里:
Dim oHttp As WinHttp.WinHttpRequest
Set oHttp = New WinHttp.WinHttpRequest
oHttp.Open "GET", "url", False
oHttp.SetRequestHeader "Accept", "application/json"
oHttp.SetRequestHeader "Content-Type", "application/json"
oHttp.SetRequestHeader "Authorization", "Bearer <token>")
oHttp.Send (sData)
Debug.Print oHttp.ResponseText
谢谢
【问题讨论】:
-
我认为更多的是VBA无法显示它。 VBA 不支持 unicode,显示这些字符之王需要更改系统的语言环境。
-
@VincentG VBA 将字符串作为 unicode 二进制存储在内存中。
-
您可以尝试读取二进制内容
WinHTTP.ResponseBody并将其转换为unicode。 -
@omegastripes 你确定吗? msdn.microsoft.com/en-us/vba/language-reference-vba/articles/…
标签: vba rest encoding httprequest cjk