संभव डुप्लिकेट:एक्सएमएल सीरियलाइज़र अमान्य चरित्र अपवाद क्यों फेंकता है जब चरित्र सीडीएटीए के अंदर होता है?
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
क्यों नेट इस अपवाद फेंक है:
Why are “control” characters illegal in XML?
Saving an escape character 0x1b in an XML file
यह एक ArgumentException फेंकता है? मैं सीडीएटीए में अवैध चरित्र लपेट रहा हूं, इसलिए मैंने सोचा होगा कि अवैध पात्र मेरे लिए संभाले जाएंगे। यह अन्य पात्रों के समूह के लिए भी मामला है (उदा। 0x1B, 0x1C, 0x1E, 0x1E, 0x1F)।
आप इस समस्या के आसपास कैसे काम करते हैं?
इन प्रश्नों को देखें: [एक एक्सएमएल फ़ाइल में एक बचने वाला चरित्र 0x1b सहेजना] (http://stackoverflow.com/questions/4134438/saving-an-escape-character-0x1b-in-an-xml-file) और [एक्सएमएल में "नियंत्रण" अक्षर अवैध क्यों हैं?] (Http://stackoverflow.com/questions/404107/why-are-control-characters-illegal-in-xml)। एक्सएमएल में सहेजने से पहले वर्कअराउंड बेस 64 एन्कोडिंग का उपयोग करना होगा। – oleksii
@oleksii आपको इसे एक उत्तर में बदलना चाहिए, क्योंकि यह सही प्रतिक्रिया है। – Bevan
@ बेवन: नहीं, असल में सवाल डुप्लिकेट के रूप में बंद होना चाहिए। –