Люди,
У меня есть веб-сервис, который возвращает данные в кодировке 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, невозможно переключить кодировку
?? Я пытался выяснить, где и как я мог бы «переключить» кодировку - пока не повезло. Что это на самом деле значит? Я не могу хранить XML с кодировкой ISO-8859-1 в SQL Server 2005 ?? Или есть хитрость: а) сказать SQL Server 2005 просто принять эту кодировку или б) автоматически преобразовать ответ веб-службы в кодировку UTF перед сохранением в SQL Server?
Спасибо за любые подсказки, указатели, советы!
Marc