[mailinglist] Re: [Python-de] htmllib und Umlaute
Martin v. Löwis
martin at v.loewis.de
Sun Apr 27 03:29:31 EDT 2003
Klaus Meyer <km-news1 at onlinehome.de> writes:
> >>> unicode("dö", "cp437")
> UnicodeError: ASCII encoding error: ordinal not in range(128)
> (Python 2.2.2, Win2k)
Das liegt daran, dass man in IDLE keine Umlaute eingeben kann. Ich
empfehle, stets die Hexadezimalversion in String-Literalen zu
verwenden, also \xRS.
> Irgendwie fehlt mir der rote Faden. Gibt es ein empfehlenswerte
> Einführung? Unicode macht mir auch immer Probleme.
http://www.jorendorff.com/articles/unicode/python.html
http://www.reportlab.com/i18n/python_unicode_tutorial.html
http://www.python.org/peps/pep-0100.html
> Sehe ich folgendes bisher richtig:
>
> Python unterstützt für Strings nur noch 7-Bit, alle Zeichen über 127
> müssen Unicode sein?
Falsch. Python-Byte-Strings enthalten Bytes im Bereich 0..255. Welche
Zeichen diese Bytes bedeuten hängt von der verwendeten Kodierung ab
(Latin-1, CP437, ASCII, UTF-8).
> Also sobald ich ein Umlaut habe, brauche ich Unicode?
Falsch. Du kannst einen Umlaut auch mit Bytestrings kodieren -
allerdings gibt es mindestens 4 verschiedene Repräsentationen für
o-umlaut (Latin-1=CP1252, CP437, CP850, UTF-8, MacRoman, ...)
> Wie verhalten sich die vielen in Python vorhanden Fkt/Module etc., die
> irgendwo Strings erwarten?
Die verhalten sich alle richtig... Was genau bedeutet die Frage?
> Gibt es noch eine Mvglichkeit, zu 8 Bit-Strings zu kommen, die ganz
> ohne Unicode (wie früher, sag ich mal :-) mit Umlauten umgehen können?
Klar. Du musst Dich bloss entscheiden, welche Kodierung Du verwenden
willst.
Wenn Du Dich beispielsweise für CP850 entscheidest, wirst Du mit
HTML-Files Schwierigkeiten bekommen, die iso-8859-1 verwenden;
verwendest Du iso-8859-1, bekommst Du mit der Windows-Konsole
Probleme. Die Probleme kann man alle lösen - allerdings muss man sie
zuerst verstehen.
Ciao,
Martin
More information about the Python-de
mailing list