[Python-de] UTF-8 Python Datei

"Martin v. Löwis" martin at v.loewis.de
Die Apr 26 00:35:49 CEST 2005


Albert Hermeling wrote:
> Das Skript ist! unicode warum ist dann type("Äpfel") im unicode Skript nicht 
> von type unicode?

Nein, ist es nicht. Es ist UTF-8-kodiert. Es ist *nicht* Unicode. Es
gibt keine Python-Skripts, die Unicode sind - wie es überhaupt keine
Dateien gibt, die Unicode sind. Unicode ist eine abstrakte Kodierung,
wo einzelne Zeichen Zahlenwerte zwischen 0 und 1114111 annehmen.

Folgen von Unicode-Zeichen (also "unicode strings") muss man zunächst
in eine Byte-Folge konvertieren ("kodieren") (*). Dazu gibt es mehrere
Kodierungsvorschriften, die heißen "UTF-8", "ascii", oder "iso-8859-1".

*Jede* dieser Kodierungsvorschriften kann Unicode-Strings in Bytefolgen
umwandeln (und zurück) - allerdings beschränken sich manche Kodierungen
auf Teilmengen von Unicode.

Also: Mit UTF-8 kann man beliebige Unicode-Texte kodieren. Was man
dann bekommt, ist aber *kein* Unicode, sondern UTF-8.

Ciao,
Martin

(*) Das ist nötig, weil ein einzelnes Byte nur Werte zwischen 0 und
255 (oder, je nach Geschmack, zwischen -128 und 127) annehmen kann.