VB 根据 REST 请求更改编码的宏
VB macro changing encoding on REST request
我有一个 excel 文件,其中有一个按钮关联到 VB 宏,如下所示:
Sub button_macro()
Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
MyRequest.Open "GET", "http://theurl/service?param=""Gestión"""
MyRequest.Send
End Sub
但是我得到的回复是这样的:
"Gestión" is not a valid value for param.
如何避免 VB 将 'ó' 字符转换为另一种编码?
如果我通过浏览器发送请求,例如:
http://theurl/service?param="Gestión"
服务回答随心所欲。
编辑:
奇怪的是 MsgBox "Código único"
可以正常显示“ó”和“ú”字符。
它在浏览器中有效,因为浏览器会为您编码请求 - 如果您使用浏览器的开发人员工具,您会看到这一点 - 例如,对于
的“示例”URL
http://theurl/service?param="Gestión"
明白了
http://theurl/service?param=%22Gesti%C3%B3n%22
您可以使用(例如)此处接受的答案中支持 UTF 的方法对您的参数进行编码:How can I URL encode a string in Excel VBA?
我有一个 excel 文件,其中有一个按钮关联到 VB 宏,如下所示:
Sub button_macro()
Set MyRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
MyRequest.Open "GET", "http://theurl/service?param=""Gestión"""
MyRequest.Send
End Sub
但是我得到的回复是这样的:
"Gestión" is not a valid value for param.
如何避免 VB 将 'ó' 字符转换为另一种编码?
如果我通过浏览器发送请求,例如:
http://theurl/service?param="Gestión"
服务回答随心所欲。
编辑:
奇怪的是 MsgBox "Código único"
可以正常显示“ó”和“ú”字符。
它在浏览器中有效,因为浏览器会为您编码请求 - 如果您使用浏览器的开发人员工具,您会看到这一点 - 例如,对于
的“示例”URLhttp://theurl/service?param="Gestión"
明白了
http://theurl/service?param=%22Gesti%C3%B3n%22
您可以使用(例如)此处接受的答案中支持 UTF 的方法对您的参数进行编码:How can I URL encode a string in Excel VBA?