【发布时间】:2010-04-07 21:31:12
【问题描述】:
我正在尝试加载一个简单的 Xml 文件(以 UTF-8 编码):
<?xml version="1.0" encoding="UTF-8"?>
<Test/>
并在 vbscript 中用 MSXML 保存:
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 表示 save() 将以 XML 定义的任何编码写入文件:
字符编码基于 XML 声明中的 encoding 属性,例如 .未指定编码属性时,默认设置为 UTF-8。
但这显然至少在我的机器上不起作用。
MSXML 如何以 UTF-8 格式保存?
【问题讨论】:
-
我没有看到您报告的行为。当我运行该代码时,它会将 XML 文档保存为 UTF-8。我得到一个 UTF-8 声明,实际的字符串是 UTF-8。
-
是的,很可能只有我的机器(Win2k3)和我同事的(Win2k8 64bit)有这个问题。如果有人能明确说明为什么机器之间的行为会有所不同,那就太好了。
标签: xml localization vbscript utf-8 msxml