Colin Ramsay
Colin Ramsay

Reputation: 16466

ASP/VBScript ServerXmlHttp Encoding

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.

Upvotes: 3

Views: 10886

Answers (3)

Francisco Campos
Francisco Campos

Reputation: 1209

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 
%>

Upvotes: 4

Thomas Kj&#248;rnes
Thomas Kj&#248;rnes

Reputation: 1927

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).

Upvotes: 2

DaveB
DaveB

Reputation: 9530

When viewing in an unstructured web page, the browser may not be using the correct encoding.

When the XML is loaded into a parser like XMLDOM, the encoding should be respected and displayed correctly.

See XML Encoding for more information.

Upvotes: 0

Related Questions