我有一个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编辑器检查时,我才能在普通的编辑器中看到它们。
使用普通编辑器,我会看到以下内容:
使用HEX编辑器,我看到以下内容:
正如你在图片中看到的那样,有一些我用常规编辑器看不到的字符''。
如何摆脱这些意想不到的角色?
我尝试根据评论中的建议将其更改为UTF16,方法是更改以下代码:
fso.Charset = "utf-16"
和
xmlText = "<?xml version=""1.0"" encoding=""UTF-16""?>" + vbCrLf
HEX编辑器中的结果如下:
之前似乎还有奇怪的人物
答案 0 :(得分:0)
我设法使用alj的this页面中的解决方案对其进行排序。
我最初认为问题正在解决,如:
xmlText = ""
xmlText = xmlText & "<?xml version=""1.0"" encoding=""UTF-8""?>" + vbCrLf
在HEX中打开Notepad ++时,我发现字符消失了,但在关闭并重新打开文件后,字符重新出现。
无论如何,删除BOM似乎现在对我有用。