gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:08:42 27 4
gpt4 key购买 nike

各位,

我有一个以 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??或者是否有技巧 a) 告诉 SQL Server 2005 只接受此编码,或 b) 在存储到 SQL Server 之前自动将 web 服务响应转换为 UTF 编码?

感谢您的任何提示、指点和技巧!马克

最佳答案

You need to convert to utf-16

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

关于c# - 尝试将 XML 内容存储到 SQL Server 2005 失败(编码问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/384974/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com