[Python-de] UTF-8 Python Datei

"Martin v. Löwis" martin at v.loewis.de
Die Apr 26 22:16:51 CEST 2005


Simon Pamies wrote:

> Das würde ja bedeuten dass
> 
>>>> g = u"Täst".encode('utf8')
>>>> j = 'Täst'
>>>> g==j
> 
> eigentlich True ergeben müsste (wegen gerade Python-losen Computer
> ungetestet). Oder lieg ich da falsch oder hab dich falsch verstanden?

Wenn im Skript

# -*- coding:utf-8 -*-

steht, sollte dieser Vergleich tatsächlich True liefern (wenn man
davon absieht, dass es auch verschiedene Unicode-Repräsentation von
"ä" gibt, unter Benutzung von combining characters).

Allerdings ist das encoding im interaktiven Modus noch etwas anders
(kurz: undefiniert), so dass interaktiv dieses Skript seltsame
Resultate liefert. Um UTF-8 wird es sich allerdings oft nicht handeln.
Theoretisch sollte

>>> g = u"Täst".encode(sys.stdin.encoding)
>>> j = 'Täst'
>>> g==j

True liefern, man kann aber Fälle konstruieren, wo es das auch nicht
tut (das ist ein Bug).

Ciao,
Martin