伙计们,
我有一个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编码?
感谢任何提示,指示,提示!渣
你需要转换为utf-16
即使我使用它,我也不是SQL Server中的XML专家,但去年我们遇到了同样的问题,而且与发送的xml相比,SQL中声明的字符串数据类型不匹配.