MSXML2丢弃编码?

时间:2019-01-15 01:35:35

标签: xml vba ms-access domdocument 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"?>

1 个答案:

答案 0 :(得分:2)

这很平常。

MSXML加载文件,使用编码来了解其编码方式,然后将所有编码数据转换为UTF-16并删除编码,因为它不再代表文件的编码方式。

如果要访问编码,则可以通过仅读取文本来读取文件(例如,使用ADODB流对象,该对象可以指定编码并轻松输出UTF-16字符串)。

如果要在处理后导出为特定的编码,请参阅bobince对Tim Williams的评论的答案。