MSXML2 отбрасывает кодировку? - PullRequest
0 голосов
/ 15 января 2019

У меня возникли проблемы с загрузкой 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"?>

1 Ответ

0 голосов
/ 15 января 2019

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

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

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

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

...