tags:

views:

1063

answers:

2

I need to write a text with the unicode character 0x1F in a utf-8 document (it is not an allowed character in xml). Is there a way to escape it, or do I have to discard it?

+3  A: 

This will do it in XML 1.1 (but is discouraged):



It isn't supported at all in XML 1.0. A workaround is to base-64 encode the text containing the character.

David M
Well, that is the same thing, but it is just as illegal.xmllint for example:test.xml:2: parser error : xmlParseCharRef: invalid xmlChar value 31
Filip
Have added to my answer...
David M
A: 

Using 0x1F XML is illegal (http://www.w3.org/TR/xml11/#charsets). so there is no way to do it, except from encoding it yourself in some way. base-64 (as proposed), or url encode, or any other option that the xml does not understand. It is the same problem as storing binary data in xml.

Mihai Nita