我必须使用经典ASP 中的 XMLHttp对象,才能通过HTTP从服务器向服务器发送一些数据到另一台服务器:
sURL = SOME_URL
Set oXHttp = Server.CreateObject("Msxml2.XMLHTTP")
oXHttp.open "POST", sURL, false
oXHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded;charset:ISO-8859-1;"
sPost = SOME_FORM_DATA
oXHttp.send(sPost)
我被告知(由消费服务器的维护者),根据我是否使用来自Windows Server 2000(IIS 5)或Windows Server 2003(IIS 6)的代码,他获得 Latin- 1 (Windows 2000 Server)或 UTF-8 (Windows Server 2003)编码数据。
我没有找到任何属性或方法来设置我必须发送的数据字符集。它是否依赖于某些Windows配置或脚本(asp)设置?
答案 0 :(得分:6)
您可以通过设置选项'SXH_OPTION_URL_CODEPAGE'来设置使用的代码页
http://msdn.microsoft.com/en-us/library/ms763811(VS.85).aspx
您还应该使用'MSXML2.ServerXMLHTTP'对象而不是'MSXML2.XMLHttp'对象,该对象适用于单线程客户端应用程序。
答案 1 :(得分:5)
上面提到SXH_OPTION_URL_CODEPAGE的答案有点误导。该选项与请求正文的编码无关,我认为这个问题是关于。
问题中代码示例的问题是在标题中使用“:”而不是“=”。它应设置如下:
oXHttp.setRequestHeader “Content-Type”,“application / x-www-form-urlencoded; charset = ISO-8859-1”