У меня проблема с classc ASP/VBScript, пытающимся прочитать XML-файл с кодировкой UTF-8 с MSXML. Файл закодирован правильно, я вижу это со всеми другими инструментами.Чтение UTF-8 XML с MSXML 4.0
Изготовленный пример 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")
' ...
... и имя содержит специальные символы (немецкие умляуты быть конкретными) байты из «двухбайтового кода» умлаута получают reencoded, поэтому я получаю два абсолютно дрянных бессмысленных персонажа. То, что должно быть «ü», становится «¼» - это четыре байта на моем выходе, а не два (правильный UTF-8) или один (ISO-8859- #).
Что я делаю неправильно? Почему MSXML считает, что вход ISO-8859- # так, что он пытается преобразовать его в UTF-8?
Прописные высказывания VB заставляют мои глаза болеть ... – Tomalak
Извините за это;) – BlaM