MSXML2 сбрасывает кодировку?

У меня возникли проблемы с загрузкой XML-файла в DOMDocument60. Это обычный текстовый файл, сохраненный в формате XML. После загрузки в VBA отсутствует строка кодировки.

Любые идеи? Спасибо заранее,

Dim MyDom As MSXML2.DOMDocument60
Set MyDom = New MSXML2.DOMDocument60

FILEL = "c:/temp/test.xml"
MyDom.Async = False
MyDom.validateOnParse = True
MyDom.Load (FILEL)

Первая линия

<?xml version="1.0" encoding="UTF-8"?> 

Изменения к

<?xml version="1.0"?>

person Gregory    schedule 15.01.2019    source источник
comment
stackoverflow.com/ вопросов/541174/ или, возможно, groups.google.com/forum/#!topic/borland.public.delphi.xml/   -  person Tim Williams    schedule 15.01.2019


Ответы (1)


Это очень обычно.

MSXML загружает файл, использует кодировку, чтобы понять, как он закодирован, затем преобразует все закодированные данные в UTF-16 и удаляет кодировку, поскольку она больше не представляет кодировку файла.

Если вам нужен доступ к кодировке, вы можете прочитать файл, просто прочитав текст (например, с помощью объекта потока ADODB, который позволяет указать кодировку и легко выводит строки UTF-16).

Если вы хотите экспортировать в определенную кодировку после обработки, см. ответ bobince на комментарий Тима Уильямса.

person Erik A    schedule 15.01.2019