可能性の重複:文字がCDATAの内部にあるときにXMLシリアライザが無効な文字例外をスローするのはなぜですか?
var c = '\x1A'; var xml = new XDocument( new XDeclaration("1.0", "utf-8", null), new XElement("test", new XCData(c.ToString())) ); var foo = xml.ToString(); // ArgumentException
はなぜ.NETは、この例外がスローされます。これは、ArgumentExceptionがスローを
Why are “control” characters illegal in XML?
Saving an escape character 0x1b in an XML file
?私はCDATAに違法文字をラッピングしているので、違法な文字が私のために処理されると思っていたでしょう。これは他の文字(例:0x1B、0x1C、0x1E、0x1E、0x1F)の場合も同様です。
この問題を回避するにはどうすればよいですか?
これらの質問を参照してください:[エスケープ文字0x1bをXMLファイルに保存する](http://stackoverflow.com/questions/4134438/saving-an-escape-character-0x1b-in-an-xml-file) [XMLで "制御"文字が不正なのはなぜですか?](http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml) Workaraundは、XMLに保存する前にBase64エンコーディングを使用することになります。 – oleksii
@oleksii正しい応答であるため、これを答えにする必要があります。 – Bevan
@Bevan:いいえ、実際には、質問は重複として閉じてください。 –