SQL Server の XML 列に XML を格納しています。SQL Server は、データを内部的に UTF-16 で格納します。したがって、格納される XML は UTF-16 でなければなりません。
私が持っている XML は utf-8 で、上に次の宣言があります。
<?xml version="1.0" encoding="UTF-8" ?>
UTF-8 宣言を使用して xml を挿入しようとすると、エンコードに関する例外が発生します。これは、次の 2 つの方法で簡単に修正できます。
宣言を削除するか、
宣言を次のように変更することによって
:
<?xml version="1.0" encoding="UTF-16" ?>
問題
宣言を削除または置換するだけが「安全」か正しいかはわかりません。データが失われたり、XML が壊れたりすることはありますか? または、C# の文字列を utf-8 から utf-16 に変換する必要がありますか?