当前位置:  开发笔记 > 编程语言 > 正文

尝试将XML内容存储到SQL Server 2005失败(编码问题)

如何解决《尝试将XML内容存储到SQLServer2005失败(编码问题)》经验,为你挑选了1个好方法。

伙计们,

我有一个web服务,返回ISO-8859-1编码的数据 - 因为它不是我的,我不能改变:-(

出于审计目的,我想将这些调用生成的XML存储到SQL Server 2005表中,其中我有一个类型为"XML NULL"的字段.

从我的C#代码中,我尝试使用参数化查询将此XML内容存储到XML字段中,例如

SqlCommand _cmd = new SqlCommand("INSERT INTO dbo.AuditTable(XmlField) VALUES(@XmlContents)", _connection);

_cmd.Parameters.Add("@XmlContents", SqlDbType.Xml);
_cmd.Parameters["@XmlContents"].Value = (my XML response);

_cmd.ExecuteNonQuery();

麻烦的是 - 当我运行此代码时,我收到一个错误:

消息9402,级别16,状态1,行1
XML解析:第1行,字符xy,无法切换编码

?? 我试图弄清楚我可以在哪里以及如何"切换"编码 - 到目前为止没有运气.这究竟意味着什么?我无法在SQL Server 2005中使用ISO-8859-1编码存储XML?或者有一个技巧:a)告诉SQL Server 2005只接受这种编码,或b)在存储到SQL Server之前自动将webservice响应转换为UTF编码?

感谢任何提示,指示,提示!渣



1> gbn..:

你需要转换为utf-16

即使我使用它,我也不是SQL Server中的XML专家,但去年我们遇到了同样的问题,而且与发送的xml相比,SQL中声明的字符串数据类型不匹配.


@gbn - 这个答案有一个死链接.
这是不正确的 - 无需转换为UTF-16.请参阅http://stackoverflow.com/a/8998183/751158.
推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有