Xml 将字符串从一种编码转换为另一种编码
我已经生成了一个xml文档,作为一个文本文件,声明它应该编码为Xml 将字符串从一种编码转换为另一种编码,xml,ms-access,vba,Xml,Ms Access,Vba,我已经生成了一个xml文档,作为一个文本文件,声明它应该编码为UTF-8。当我检查是否符合模式时,它会报告文件中存在非法字符 An invalid character was found in text content. 可疑字符的单字节值为0x92 在visual basic中,我使用类型为DOMDocument60的变量dom;然后执行以下操作 Set nod = dom.createElement("dc.description") nod.text = Trim$(Nz(rs!mDes
UTF-8
。当我检查是否符合模式时,它会报告文件中存在非法字符
An invalid character was found in text content.
可疑字符的单字节值为0x92
在visual basic中,我使用类型为DOMDocument60
的变量dom
;然后执行以下操作
Set nod = dom.createElement("dc.description")
nod.text = Trim$(Nz(rs!mDescription, ""))
这就是错误的来源。我有一种感觉,我需要进行字符集转换,以便将可疑字符正确编码为utf-8
我的具体问题是:
1) 我的出发点是什么字符集?该字符串来自access-2010数据库(备忘录类型)
2) 如何将其转换为UTF-8
我不知道该怎么做。我对VBA不是很熟悉。引起你悲伤的角色被称为聪明引语或卷曲引语。看起来是这样的:' 这个问题实际上与访问无关,只是您必须在Access/VBA中找到一种方法来处理它。无论出于何种原因,您的XML包含无效的XML字符 我可以想出两个选择。第一个选项是用标准的非智能引号替换字符。下面是一些非优雅的代码,可以一次快速替换所有四种可能的智能引用:
Replace(Replace(Replace(Replace(MyString, Chr(147), Chr(34)), Chr(148), Chr(34)), Chr(145), Chr(39)), Chr(146), Chr(39))
第二个选项是使用适当的XML/HTML字符代码替换有问题的字符(假设您确实需要),对于您遇到问题的特定字符,该代码是:
’
您可以考虑在输入数据上运行替换,以便从开始时存储有效字符。
谢谢HK1。我用了你的第二个建议。我还有一些其他字符不属于UTF-8
,并对它们进行了适当的转换。谢谢你忽略了我所认为的问题。非常有用。