.net xmlシリアライザーが一部の文字をエンコードしない
-
05-07-2019 - |
質問
I文字列型の複数のプロパティを含むクラス。値の1つに16進値96の文字が含まれています。クラスをxmlにシリアル化すると、xmlシリアライザーはその文字をエンコードせず、OpenXMLを使用するIEやSQLServerなどのさまざまなツールでxmlを表示すると、文字はxmlドキュメントでは無効です。 xmlシリアライザーはこの文字をエンコードするべきではありませんか?
解決 2
エンコーディングをiso-8859-1に変更することでエラーを回避できました。私の場合、そのコードページには、データが消費したすべての文字が含まれていました。理論的には、データに他の文字を含めることは可能かもしれませんが、これは適切な回避策です。
他のヒント
これは役立つ場合があります(警告-検索エンジンで発見、未テスト):。NET WebサービスがUnicode制御文字で失敗する
基本的に、XmlSerializerはUnicode制御文字の逆シリアル化に失敗すると言います。
コメントでは、ポスターの1つが 16進値0xは無効な文字です。 0x96はリストされていないため、これが同じ問題であるかどうかはわかりません。
所属していません StackOverflow