ADO记录集无法保存到DOM XML中

ADO记录集无法保存到DOM XML中,xml,dom,vbscript,asp-classic,adodb,Xml,Dom,Vbscript,Asp Classic,Adodb,此记录集无法以XML形式保存到DOM中 某些列数据中有特殊字符。我可以循环遍历每个记录和响应。Write()字段不会出现错误 Set adoCn = Server.CreateObject("ADODB.Connection") adoCn.Open Application("conn_string") Set objCommand = Server.CreateObject("ADODB.Command") Set objDOM = Server.CreateObject("Msxml2.DO

此记录集无法以XML形式保存到DOM中

某些列数据中有特殊字符。我可以循环遍历每个记录和响应。Write()字段不会出现错误

Set adoCn = Server.CreateObject("ADODB.Connection")
adoCn.Open Application("conn_string")
Set objCommand = Server.CreateObject("ADODB.Command")
Set objDOM = Server.CreateObject("Msxml2.DOMDocument.3.0")

objCommand.ActiveConnection = Application("conn_string")

spQry = "SP_QUERY"
objCommand.CommandText = spQry
objCommand.CommandType = adCmdStoredProc

Set objRs = objCommand.Execute

objRS.save objDOM, adPersistXML //Error occurs here
Set objCommand = Nothing
objRS.Close
adoCn.Close
Set objRS = Nothing
错误:未知错误

如果我在数据库中重新键入文本,从而去掉特殊字符,那么一切都很好

我尝试添加以下内容,看看是否有帮助,但到目前为止运气不佳:

Response.CodePage = 65001
Response.Charset="UTF-8"
有人知道我如何将此记录集保存到DOM中,无论它是否具有特殊字符吗

[编辑]添加了文本图像

[EDIT2]执行查询后尝试流式传输记录集:

不幸的是,我没有做得太多,当设置字符集时,它给出了一个错误:
“参数不正确”
,错误实际上发生在
oStream.ReadText
行上。当我注释掉字符集时,末尾的Response.Write只显示方括号

Set objRs = objCommand.Execute

sXML = ""

Set oStream = Server.CreateObject("ADODB.Stream")
oStream.Charset = "utf-8" //This produced an error: The parameter is incorrect 

oRecordset.save oStream, adPersistXML
oStream.Position = 0

sXML = oStream.ReadText 

oStream.Close 
Set oStream = Nothing

Response.Write("[" & sXML & "]")

我找不到显示数据的方法。所以我手动修改了数据库中的文本,因为只有4条记录

当表单数据被处理、插入或更新时,我最终在数据输入端解决了这个问题


我在文本中循环分析每个字符,去掉所有非键盘字符,生成一个干净的字符串。

你能给出特殊字符的示例吗?@oraclecertifiedprofessional请参见上面的编辑,在单词“elses”的第一段末尾。我认为还有其他字符没有显示出来,因为我尝试删除了刚才提到的一个字符,但仍然出现了错误。嗯,查看it notes
以XML格式保存的记录集是使用UTF-8格式保存的。当这样的文件加载到ADO流中时,Stream对象不会尝试从流中打开记录集,除非流的Charset属性设置为UTF-8格式的适当值。
我想知道您的特殊字符是否会导致在不受支持的Charset中创建流。您可以尝试改用
ADODB.Stream
,它允许您显式地声明目标字符集。对流进行了一次尝试,但是没有走多远,也许您可以帮我举个例子。请参阅上面的Edit2。抱歉,我想我必须安装不同版本的ADODB,因为我无法重现错误。我发现了这个问题(似乎与使用“智能”引号从Office文档复制粘贴有关),但没有解决方案