VBA 强制 SAX 编码 UTF-8 和缩进
Posted
技术标签:
【中文标题】VBA 强制 SAX 编码 UTF-8 和缩进【英文标题】:VBA force SAX to encode UTF-8 and indent 【发布时间】:2016-10-06 19:20:12 【问题描述】:我正在编写 VBA 来导出 xml。 我使用 SAXXMLReader 是因为我需要漂亮的缩进输出。
这就是我希望声明的样子:
<?xml version="1.0" encoding="UTF-8"?>
结果是这样的:
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
为什么 SAX 会忽略我的编码选择以及如何强制它使用 8。
Sub XML_Format_Indent_Save(xmlDoc1 As MSXML2.DOMDocument60, strOutputFile As String)
Dim xmlWriter As MSXML2.MXXMLWriter60
Dim strWhole As String
Set xmlWriter = CreateObject("MSXML2.MXXMLWriter")
xmlWriter.omitXMLDeclaration = False
xmlWriter.Indent = True
xmlWriter.Encoding = "utf-8"
With CreateObject("MSXML2.SAXXMLReader")
Set .contentHandler = xmlWriter
.putProperty "http://xml.org/sax/properties/lexical-handler", xmlWriter
.Parse xmlDoc1
End With
strWhole = xmlWriter.output
ExportStringToTextFile strOutputFile, strWhole
End Sub
【问题讨论】:
【参考方案1】:根据我在另一篇文章中看到的内容,您需要将.byteOrderMark
设置为true
或false
,否则.encoding
将被忽略。
【讨论】:
以上是关于VBA 强制 SAX 编码 UTF-8 和缩进的主要内容,如果未能解决你的问题,请参考以下文章
django rest_framework中将json输出字符强制为utf-8编码