【问题标题】:How do I set the character set using XMLHttp Object for a POST in classic ASP?如何在经典 ASP 中使用 XMLHttp 对象为 POST 设置字符集?
【发布时间】:2008-10-10 12:08:28
【问题描述】:

我必须使用经典 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) 设置?

【问题讨论】:

    标签: encoding asp-classic character-encoding serverxmlhttp


    【解决方案1】:

    您可以通过设置选项'SXH_OPTION_URL_CODEPAGE'来设置使用的代码页

    http://msdn.microsoft.com/en-us/library/ms763811(VS.85).aspx

    您还应该使用“MSXML2.ServerXMLHTTP”对象,而不是用于单线程客户端应用程序的“MSXML2.XMLHttp”对象。

    【讨论】:

      【解决方案2】:

      上面提到 SXH_OPTION_URL_CODEPAGE 的答案有点误导。该选项与我认为问题所在的请求正文的编码无关。

      问题中代码示例的问题是在标题中使用“:”而不是“=”。应该设置如下:

      oXHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=ISO-8859-1"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-23
        相关资源
        最近更新 更多