Люди,
У меня есть веб-сервис, который возвращает данные в кодировке ISO-8859-1 - поскольку это не мое, я не могу изменить это: - (
Для целей аудита я хотел бы сохранить полученный XML из этих вызовов в таблицу SQL Server 2005, в которой у меня есть поле типа "XML NULL".
Из моего кода на С# я пытаюсь сохранить этот 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, уровень 16, состояние 1, строка 1
Разбор XML: строка 1, символ xy, неспособность переключить кодировку
?? Я пытался выяснить, где и как я могу "переключить" кодировку - пока не повезло. Что это на самом деле значит? Я не могу хранить XML с кодировкой ISO-8859-1 в SQL Server 2005?? Или есть трюк: a) сообщить SQL Server 2005 просто принять эту кодировку или b) автоматически преобразовать ответ webservice в кодировку UTF перед сохранением в SQL Server?
Спасибо за любые подсказки, указатели, подсказки! Марк