伙计们,
我有一个webservice返回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();
Msg 9402,Level 16,State 1,Line 1
XML parsing: line 1,character xy,unable to switch the encoding
??我试图弄清楚在哪里和如何可能“切换”编码 – 到目前为止没有运气.这是什么意思?在sql Server 2005中我不能使用ISO-8859-1编码存储XML?还是有一个诀窍呢?)告诉sql Server 2005只是接受这个编码,或者b)在存储在sql Server之前,将webservice响应自动转换成UTF编码?
解决方法
You need to convert to utf-16
即使我使用sql Server,我也不是sql Server的专家,但是我们去年遇到了同样的问题,并且与发送的xml相比,在sql中声明的字符串数据类型是错误的.
原文地址:https://www.jb51.cc/csharp/95858.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。