Olası Çoğalt:XML serializer karakter CDATA içinde olduğunda neden geçersiz karakter istisnası atar?
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
Neden .Net Bu istisna atıyor: Bu bir ArgumentException
Why are “control” characters illegal in XML?
Saving an escape character 0x1b in an XML file
? Ben yasadışı karakterleri CDATA'da saklıyorum, bu yüzden yasadışı karakterlerin benim için ele alınacağını düşünürdüm. Bu, diğer karakterlerden oluşan bir grup için de geçerlidir (örneğin, 0x1B, 0x1C, 0x1E, 0x1E, 0x1F).
Bu soruna nasıl çalışıyorsunuz?
Bu soruları görün: [XML dosyasında bir çıkış karakteri 0x1b kaydetme] (http://stackoverflow.com/questions/4134438/saving-an-escape-character-0x1b-in-an-xml-file) ve [Neden XML'de “kontrol” karakterleri yasa dışıdır?] (Http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml). Workaraund, bir XML'e kaydetmeden önce Base64 kodlamasını kullanmak olacaktır. – oleksii
@oleksii Bunu bir yanıt olarak vermelisiniz, çünkü doğru yanıt. – Bevan
@Bevan: Hayır, aslında soru, kopya olarak kapatılmalıdır. –