Which are the valid xml encoding strings? For instance, what is the way of specifying UTF-8:
encoding="utf8"
encoding="utf8"
Or Windows 1251:
encoding="windows-1251"
encoding="windows1251"
encoding="cp-1251"
I am making a character decoder as well as a xml parser. Thus, I need to be able to set the encoding of my StreamReader based on the value from the encoding attribute.
Any ideas where I could find a list of the official encoding string?
The best I could find is this, but it seems to be IE specific.
Thanks!
If all fails, read the spec :-).
4.3.3 Character Encoding in Entities
Each external parsed entity in an XML document may use a different encoding for its characters.
[...]
In an encoding declaration, the values " UTF-8 ", " UTF-16 ", " ISO-10646-UCS-2 ", and " ISO-10646-UCS-4 " SHOULD be used for the various encodings and transformations of Unicode / ISO/IEC 10646, the values " ISO-8859-1 ", " ISO-8859-2 ", ... " ISO-8859- n " (where n is the part number) SHOULD be used for the parts of ISO 8859, and the values " ISO-2022-JP ", " Shift_JIS ", and " EUC-JP " SHOULD be used for the various encoded forms of JIS X-0208-1997.
It is RECOMMENDED that character encodings registered (as charsets) with the Internet Assigned Numbers Authority IANA-CHARSETS, other than those just listed, be referred to using their registered names; other encodings SHOULD use names starting with an "x-" prefix.
Source: http://www.w3.org/TR/REC-xml/
So UTF-8 is written as encoding="UTF-8"
.
For other character sets not listed above, use the names given in the IANA character set list.
Case of the letters in the character set name is not significant: "However, no distinction is made
between use of upper and lower case letters." (IANA character set list). So you could also write
encoding="uTf-8"
if you feel like it ;-).
BTW: Are you really, really certain you want to write your own XML parser? This sounds suspiciously like reinventing the wheel.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With