Arian Kuschki schrieb:
Whoa, that was quick! Thanks for all the answers, I'll try to recapitulate

What does this show you in your interactive interpreter?

print "\xc3\xb6"
ö

For me, it's o-umlaut, ö. This is because the above bytes are the
sequence for ö in utf-8.

If this shows something else, you need to adjust your terminal settings.

for me it also prints the correct o-umlaut (ö), so that was not the problem.


All of the below result in xml that shows all umlauts correctly when printed:

xml.decode("cp1252")
xml.decode("cp1252").encode("utf-8")
xml.decode("iso-8859-1")
xml.decode("iso-8859-1").encode("utf-8")

But when I want to parse the xml then, it only works if I
do both decode and encode. If I only decode, I get the following error:
SAXParseException: <unknown>:1:1: not well-formed (invalid token)

Do I understand right that since the encoding was not specified in the xml response, it should have been utf-8 by default? And that if it had indeed been utf-8 I would not have had the encoding problem in the first place?

Yes. XML without explicit encoding is implicitly UTF-8, and the page is borked using cp* or latin* without saying so.


Diez
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to