XML意外字符

时间:2017-08-28 07:12:39

标签: xml excel vba text-editor

我有一个XML文件,我通过连接字符串使用Excel宏创建。

与代码的串联就像:

xmlText = "<?xml version=""1.0"" encoding=""UTF-8""?>" + vbCrLf

最终创建文件的代码如下:

Dim fso As Object
strPath = "C:\"
Set fso = CreateObject("ADODB.Stream")
fso.Type = 2 'Specify stream type - we want To save text/string data.
fso.Charset = "utf-8" 'Specify charset For the source text data.    
fso.Open
' Write to file
fso.WriteText xmlText
fso.SaveToFile strPath, 2    
Set fso = Nothing

我面临的问题是,不知何故插入了不需要的字符,但只有当我用HEX编辑器检查时,我才能在普通的编辑器中看到它们。

使用普通编辑器,我会看到以下内容:

enter image description here

使用HEX编辑器,我看到以下内容:

enter image description here

正如你在图片中看到的那样,有一些我用常规编辑器看不到的字符''。

如何摆脱这些意想不到的角色?

我尝试根据评论中的建议将其更改为UTF16,方法是更改​​以下代码:

fso.Charset = "utf-16"

xmlText = "<?xml version=""1.0"" encoding=""UTF-16""?>" + vbCrLf

HEX编辑器中的结果如下:

enter image description here

之前似乎还有奇怪的人物

1 个答案:

答案 0 :(得分:0)

我设法使用alj的this页面中的解决方案对其进行排序。

我最初认为问题正在解决,如:

xmlText = ""
xmlText = xmlText & "<?xml version=""1.0"" encoding=""UTF-8""?>" + vbCrLf

在HEX中打开Notepad ++时,我发现字符消失了,但在关闭并重新打开文件后,字符重新出现。

无论如何,删除BOM似乎现在对我有用。