首页 > 解决方案 > 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"?>

标签: xmlvbams-accessdomdocumentmsxml2

解决方案


这是很常见的。

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

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

如果您想在处理后导出到特定编码,请参阅 bobince 对 Tim Williams 评论的回答。


推荐阅读