The <?xml?>
prolog is not specifying an encoding. If the encoding is not available outside of the XML through out-of-band means then the encoding has to be guessed through analysis of the XML's starting bytes, per the rules outlined in Appendix F of the XML spec. In this case, that likely leads to UTF-8 being selected. If the XML is not actually UTF-8 encoded, that would account for the behavior you are seeing.
In ISO-8859-1, ß
is encoded as byte octet 0xDF
, and "
is encoded as byte octet 0x22
.
In UTF-8, 0xDF
is a starting byte of a 2-byte octet sequence, which accounts for the "
being skipped. However, 0xDF 0x22
is not a valid UTF-8 2-octet byte sequence, so TinyXml should have failed the parse with an error. If it does not, then that is a bug in TinyXml.
If the XML is actually ISO-8859-1 encoded, the server must provide that info. If it is not, then that is a bug in the server.