将字符串从一种编码转换为另一种

时间:2011-10-26 05:37:13

标签: xml ms-access vba

我已经生成了一个xml文档作为文本文件,声明它应该编码为UTF-8。当我检查是否符合架构时,它会报告文件中存在非法字符。

An invalid character was found in text content.

可疑字符的单字节值为0x92

在visual basic中,我使用dom类型的变量DOMDocument60;并执行以下操作

Set nod = dom.createElement("dc.description")
nod.text = Trim$(Nz(rs!mDescription, ""))

这是错误的来源。我觉得我需要进行字符集转换才能将可疑字符正确编码为utf-8。

我的具体问题是:

1)我的出发点是什么字符集?该字符串来自access-2010数据库(备注类型)

2)如何将其转换为UTF-8

我对如何做到这一点感到茫然。我对VBA不是很熟悉。

1 个答案:

答案 0 :(得分:0)

引起你悲伤的角色被称为智能引语或卷曲引语。它看起来像这样:'

除了必须在Access / VBA中找到处理它的方法之外,这个问题并不是真正的Access相关。无论出于何种原因,您的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字符代码,对于您遇到问题的特定字符,它是:

’

您可以考虑对传入的数据运行替换,以便从头开始存储有效字符。