我正在使用MSXML2.XMLHTTP60使用Web服务器通过VBA发送文本消息。我无法理解为什么接收短信时不显示€符号。其他特殊字符,例如ò,à,è等在我编写的转换函数后显示(例如à编码为“%E0”)。我想web服务器期待charset iso 8859-1,它不支持€符号。因此,我该如何解决这个问题?
答案 0 :(得分:1)
如果您的请求是 POST 请求,那么您可以使用编码为Content-Type
指定标头,例如像这样:
objHTTP.Open "POST", ...
objHTTP.setRequestHeader "Content-Type", "text/html; charset=utf-8"
但是对于 GET 请求,带有可能的查询字符串参数的URL将被编码为ASCII。阅读例如this发帖。
答案 1 :(得分:0)
使用UTF-8作为字符编码应解决此类问题。它也可能不需要您的转换功能。我不确定如何在您的Web服务器中设置编码,但这通常都有很好的记录。