我嘗試使用MSXML讀取UTF-8編碼的XML文件的classc ASP/VBScript出現問題。該文件編碼正確,我可以看到與所有其他工具。使用MSXML 4.0讀取UTF-8 XML
構造的XML例子:
<?xml version="1.0" encoding="UTF-8"?>
<itshop>
<Product Name="Backup gewünscht" />
</itshop>
如果我試圖做到這一點在ASP ...
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("input.xml", FOR_READING)
XML = ts.ReadAll
ts.Close
Set ts = nothing
Set fso = Nothing
Set myXML = Server.CreateObject("Msxml2.DOMDocument.4.0")
myXML.loadXML(XML)
Set DocElement = myXML.documentElement
Set ProductNodes = DocElement.selectNodes("//Product")
Response.Write ProductNodes(0).getAttribute("Name")
' ...
...和名稱中包含特殊字符(德語變音符號是特定的)字節的變音符「雙字節代碼」得到重新編碼,所以我最終得到了兩個完全蹩腳的無意義字符。應該是「ü」變成「ü」 - 在我的輸出中是四個字節,而不是兩個(正確的UTF-8)或一個(ISO-8859-#)。
我在做什麼錯?爲什麼MSXML認爲輸入是ISO-8859-#,以便它試圖將其轉換爲UTF-8?
大寫的VB語句讓我的眼睛受傷... – Tomalak 2009-06-09 17:50:09
對不起;) – BlaM 2009-06-09 17:51:42