传递 xml string到sql server时的sp_xml_preparedocument无法解析问题
2011-01-13 20:39
591 查看
传递 xml string到sql server时的sp_xml_preparedocument无法解析问题
"XML parsing error: Switch from current encoding to specified encoding not supported."
"系统不支持指定的编码方式。"
这是因为SQL中的nvarchar中的字符是Unicode编码,varchar是ASCII编码造成的
故定义传递给sp_xml_preparedocument的xml字符串时一定要注意输入的xml字符串的编码方式和定义的SQL变量的编码方式相同。
例:
附一些编码方式的资料:
UTF-8 http://zh.wikipedia.org/zh/UTF-8
UTF-16 http://zh.wikipedia.org/zh-cn/UTF-16
GB2312 http://zh.wikipedia.org/zh-cn/GB2312
"XML parsing error: Switch from current encoding to specified encoding not supported."
"系统不支持指定的编码方式。"
这是因为SQL中的nvarchar中的字符是Unicode编码,varchar是ASCII编码造成的
故定义传递给sp_xml_preparedocument的xml字符串时一定要注意输入的xml字符串的编码方式和定义的SQL变量的编码方式相同。
例:
DECLARE @doc varchar(max) SET @doc = N'<?xml version="1.0" encoding="gb2312" ?><ROOT><ROW Num="1" /></ROOT>' --正确 SET @doc = N'<?xml version="1.0" encoding="UTF-8" ?><ROOT><ROW Num="1" /></ROOT>' --正确 SET @doc = N'<?xml version="1.0" encoding="UTF-16" ?><ROOT><ROW Num="1" /></ROOT>' --错误 ... DECLARE @doc nvarchar(max) SET @doc = N'<?xml version="1.0" encoding="gb2312" ?><ROOT><ROW Num="1" /></ROOT>' --错误 SET @doc = N'<?xml version="1.0" encoding="UTF-8" ?><ROOT><ROW Num="1" /></ROOT>' --错误 SET @doc = N'<?xml version="1.0" encoding="UTF-16" ?><ROOT><ROW Num="1" /></ROOT>' --正确 ...
附一些编码方式的资料:
UTF-8 http://zh.wikipedia.org/zh/UTF-8
UTF-16 http://zh.wikipedia.org/zh-cn/UTF-16
GB2312 http://zh.wikipedia.org/zh-cn/GB2312
相关文章推荐
- 传递: xml string到sql server时的sp_xml_preparedocument无法解析问题
- sp_xml_preparedocument (Transact-SQL)--SQL Server 2008 联机丛书(2008 年 8 月)
- sp_xml_preparedocument sp_xml_removedocument 使用 实例 解析
- jQuery使用ajax传输xml文档在IE中无法正确解析的问题
- 由于错误 0xC0011008“从 XML 加载时出错。没有关于此问题的更详细错误信息,因为没有传递可存储详细错误信息的 Events 对象。”,无法加载包。
- sp_xml_preparedocument(csdn)
- 当在一个xml doc里面使用一个很大xml doc作为attribute时sp_xml_preparedocument返回Unspecified error
- xml无法解析<和>导致无法导出excel问题
- 使用sp_xml_preparedocument处理XML文档
- sp_xml_preparedocument
- sp_xml_preparedocument _使用 处理XML文档
- 关于ajaxFileUpload无法解析json的问题(Resource interpreted as Document but transferred with ……)
- IE打开xml无法打开问题原理解析
- 使用sp_xml_preparedocument处理XML文档
- 存储过程使用sp_xml_preparedocument处理XML文档的方法
- 使用sp_xml_preparedocument处理XML文档的方法
- 解决NSXmlParser无法解析非utf-8编码的XML问题的方法
- sp_xml_preparedocument OPENXML sp_xml_removedocument截取XML片段或指定格式的数据
- 解决IE中无法用jquery解析xml使用find的问题
- SQL 中 sp_xml_preparedocument,openxml的使用