[Python-de] Unicode - Bläue (Umlaute mit Absicht im Header)

Martin v. Loewis martin at v.loewis.de
Wed Nov 6 23:50:32 EST 2002


Gerson.Kurz at t-online.de (Gerson Kurz) writes:

> Meine
> Oldskool-Lang-Lebe-Der-Amiga-1985-(Naturgeäß-nur-der-Amiga1000-mit-US-Tasta
> tur-und-Kickstart1.3)-Zeichensatzkenntnisse sind: Bytes sind Bytes.

Diese Kenntnisse erlischen natürlich in dem Moment, wo man mehr als
256 Zeichen haben will. Ab dann gilt: Zahlen sind Zahlen.

> Du kannst die Bytes unter Windows wegschreiben, und unter Linux
> reinnudeln.

Klar. Allerdings ist dann ein ü nicht mehr unbedingt ein ü.

>     self.fh.write(schmarrn_elender.encode("utf-16le"))
[...]
> Frage 1: Warum muß ich den "<type 'unicode'>" noch mal als Unicode encoden?
> Der Laie würde sagen das ist doch redundant?

Ganz einfach: Zahlen sind nicht Bytes. Zahlen sind Zahlen. Will man
Zahlen in Bytes umrechnen, gibt es mehrere Möglichkeiten (utf-16be,
utf-16le, utf-8, ...)

> 
> Frage 2: Angenommen, ich möchte im String "<" durch "&lt;" ersetzen.
> 
> Möglichkeit a)
> 
> 	schmarrn_elender = str(schmarrn_elender).replace("&","&lt;")

Probier mal

   schmarrn_elender = schmarrn_elender.replace("<","&lt;")

> Frage 3: Angenommen, es ist mir egal, ob in China geborene
> Suaheliindianerdichterfürsten Mundartpoeme von Win nach Lin exportieren
> können - ich möchte einfach ein "ö" 8-bit abspeichern, und 8-bit unter Linux
> einlesen, unter der Voraussetzung gleiche Codepage. 

Das ist natürlich schon eine mutige Voraussetzung, die in der wahren
Welt nicht ganz erfüllt ist, und mit ein bisschen Pech so völlig gar
nicht (wenn Du beispielsweise mit "Windows" die Konsole meinst).

> Das ist ja z.B. der Fall, wenn ich mit dem popeligen Notepad ein "ö"
> speichere. Es kann also nicht völlig jenseits des
> Menschenmöglichen sein, oder?

Nö, ist auch ganz einfach.

> Zumal ja mbox AFAIK auch ganz simples 8-Bit Dateiformat ist, und ich
> habe gehört, daß auch unter Linux der eine oder andere schon mal
> Mehl mit Umlauten gelesen haben soll (angeblich - ich mag mich
> irren).

Gerade bei Email ist das anders - mbox ist de jure ein
7-bit-Format. Wenn da Umlaute vorkommen, ist das MIME zu verdanken.

Wo war jetzt aber die Frage 3? Ob irgendwas menschenmöglich ist?

> Frage 4: Gibt es ein, äh, UNICODE-Tutorial? 

Nö.

> Ich würde (nicht wirklich) das ganze mal *verstehen*, das muß doch
> möglich sein?

Das ist offenbar schwieriger, als Du und ich es erwarten würden: Mir
ist wirklich nicht klar, wo Deine Schwierigkeiten sind.

Ciao,
Martin




More information about the Python-de mailing list