2010-03-18 38 views
3

我從遠程位置使用ServerXMLHTTP拉動一個RSS feed:ASP/VBScript中的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 

但是必須有某處沿線編碼的問題,因爲我看到????哪裏應該有一些日文字符。有沒有人在使用ServerXmlHttp時有任何指導?

謝謝。

回答

2

這裏有幾個可能的問題。

  1. 什麼是你的ASP頁面使用的代碼頁和字符集?

這可以使用<%@ CodePage = xxxxx%>指令或Response.CodePage和Response.Charset進行設置。

  1. 什麼是XML文件的編碼?

經典ASP具有用於這些東西衆所周知的不良的支持,和最安全的選擇是堅持使用單個編碼,優選UTF-8(代碼頁65001)。

0

在非結構化網頁中查看時,瀏覽器可能未使用正確的編碼。

將XML加載到像XMLDOM這樣的解析器中時,應該遵守編碼並正確顯示。

查看XML Encoding瞭解更多信息。

2

調查的幾個小時後,這是我的結果:

不起作用:和

<%@ Language=VBScript Codepage=65001 %> 

,而不是正確的特殊字符,這表明問號黑色問號。

但這個工程!

Response.CodePage = 65001 

我還包含

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

最終結果:

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