Vielen ist nicht klar, dass beim Eintippen von:
im Editor oder in der Interpretershell sehr viel Encoding-Magie passiert, bis Python an das richtige Zeichen kommt. Im Falle der Datei sind das:
- Eingabe-Encoding des Editors
- Ausgabe-Encoding des Editors (hier kann Fensterausgabe von Dateiausgabe verschiedenen sein, falls der Editor "Schreibe Datei als Encoding XY..." unterstützt)
- Eingabeencoding der Datei in Python - wird über # coding: XXX annotiert
- implizite Wandlung von u''-Strings zu interner Unicode-Repräsentation
Das sind recht viele Stellen, an denen es haken kann. Da scheinen selbst IDE-Entwickler das Setzen des richtigen Flags hier und da zu vergessen (wie neulich ein Post hier zeigte - weiss leider den IDE-Namen nicht mehr)