Мне нужно использовать Объект XMLHttp в классическом ASP, чтобы отправить некоторые данные на другой сервер через 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)?





Вы можете установить используемую кодовую страницу, установив параметр 'SXH_OPTION_URL_CODEPAGE'
http://msdn.microsoft.com/en-us/library/ms763811(VS.85).aspx
Вы также должны использовать объект «MSXML2.ServerXMLHTTP», а не объект «MSXML2.XMLHttp», который предназначен для однопоточных клиентских приложений.
Приведенный выше ответ, касающийся SXH_OPTION_URL_CODEPAGE, вводит в заблуждение. Этот вариант не имеет отношения к кодировке тела запроса, о чем, я думаю, и был вопрос.
Проблема с примером кода в вопросе заключается в использовании ":" вместо "=" в заголовке. Он должен быть установлен следующим образом:
oXHttp.setRequestHeader "Content-Type", "application / x-www-form-urlencoded; charset = ISO-8859-1"