ASP/VBScript ServerXmlHttp Encoding

10,432

Solution 1

There are several possible issues here.

  1. What is the codepage and charset used by your ASP page?

This can either be set with the <%@ CodePage=xxxxx %> directive or Response.CodePage and Response.Charset.

  1. What is the encoding of th XML-file?

Classic ASP has notoriously bad support for these things, and the safest bet is to stick with a single encoding, preferably UTF-8 (CodePage 65001).

Solution 2

After some hours of investigation, these are my results:

Does not work:

<%@ Language=VBScript Codepage=65001 %>

And instead of correct special chars, it shows question marks black question marks.

But this works!!

Response.CodePage = 65001

I've also included

Response.Charset = "UTF-8"
response.AddHeader "Content-Type", "text/html;charset=UTF-8"

Final result:

<%@ Language=VBScript %>
<%
Dim xmlhttp
Set xmlhttp = CreateObject("Msxml2.ServerXMLHTTP")

xmlhttp.open "GET", "http://www.sapo.pt", 0
xmlhttp.send ""
Dim pagina

response.AddHeader "Content-Type", "text/html;charset=UTF-8"
Response.CodePage = 65001
Response.Charset = "UTF-8"


pagina = xmlhttp.responseText
Response.Write pagina
Set xmlhttp = Nothing 
%>
Share:
10,432
Colin Ramsay
Author by

Colin Ramsay

Full stack developer. A partner at Go Tripod Ltd (http://www.gotripod.com).

Updated on June 04, 2022

Comments

  • Colin Ramsay
    Colin Ramsay almost 2 years

    I'm pulling an RSS feed from a remote location using ServerXmlHttp:

    Dim httpRequest
    set httpRequest = server.createObject("Msxml2.ServerXMLHTTP.6.0")
    httpRequest.open "GET", "http://www.someurl.com/feed.xml", false
    httpRequest.send()
    response.write httpRequest.responseXML.xml
    

    However there must be encoding issues somewhere along the line as I'm seeing ???? where there should be some Japanese characters. Does anyone have any guidance when working with ServerXmlHttp?

    Thanks.