Я пытаюсь загрузить простой файл Xml (в кодировке UTF-8):Сохранение XML в кодировке UTF-8 с MSXML
<?xml version="1.0" encoding="UTF-8"?>
<Test/>
И сохранить его с MSXML в VBScript:
Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")
xmlDoc.Load("C:\test.xml")
xmlDoc.Save "C:\test.xml"
Проблема заключается в том, что MSXML сохраняет файл в ANSI вместо UTF-8 (несмотря на то, что исходный файл был закодирован в UTF-8).
MSDN docs for MSXML говорит, что сохранить() запишет файл в любом кодирующая XML определяется в:
Кодировка символов основана на атрибуте кодирования в объявлении XML, такие как. Если атрибут кодирования не указан, значением по умолчанию является UTF-8.
Но это явно не работает, по крайней мере, на моей машине.
Как сохранить MSXML в UTF-8?
Я не вижу поведения, о котором вы сообщаете. Когда я запускаю этот код, он сохраняет XML-документ в UTF-8. Я получаю декларацию UTF-8, а фактические строки находятся в UTF-8. – Cheeso
Возможно, это может быть только моя машина (Win2k3) и моя коллега (Win2k8 64bit), у которой есть эта проблема. Будет хорошо, если кто-то может сказать окончательно, почему поведение отличается от машин. – stung