【发布时间】:2017-08-28 07:12:39
【问题描述】:
我有一个 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 编辑器中的结果是这样的:
之前好像还有奇怪的字符
【问题讨论】:
-
您是否在 XML 数据中使用了任何特殊字符?
-
是的,我在 XML 文本中有以下我需要的城市名称:Dobříš
-
嗯...不确定,但如果您的相同代码在没有该名称的情况下也可以工作,那么名称就是问题所在。简单的解决方案是移至 utf-16。为符号添加额外的存储空间。
-
utf-16 似乎让情况变得更糟。我已经编辑了上面的问题以显示结果。
-
我尝试将 XML 正文中的特殊字符从 Dobříš 替换为 Dobris,但没有任何区别。 HEX编辑器中的奇怪字符仍然出现
标签: xml excel vba text-editor