[Python-de] Umlautproblem in Python 2.3

Detlef Lannert lannert at uni-duesseldorf.de
Fri Feb 14 16:28:42 EST 2003


Liebe Mitleser/innen,

ein bißchen sehr spät, ich weiß -- aber ich habe gestern erst
begriffen, welche Auswirkungen eine "kleine" Änderung hat, die
mit Python 2.3 wirksam wird: Künftig erzeugt jedes Python-Skript
eine Warnung, das irgendwo (z.B. Latin-1-)Umlaute enthält (und
sei es nur in einem Kommentar), wenn nicht in der ersten oder
zweiten Zeile der Datei der String "coding: Latin-1" (oder der
Name eines anderen gültigen Kodes) erscheint.

Obwohl ich schon seit längerer Zeit die CVS-Version von Python
2.3 häufig benutze, hat mich dieses Problem noch nicht gebissen,
weil ich selten deutschsprachige Kommentare verwende.

Ein Kollege macht jedoch sehr häufig davon Gebrauch und wird
mit 2.3 alle seine Skripte ändern müssen. Ich weiß auch noch
nicht, wie ich in der nächsten Woche den Teilnehmern meines
Python-Kurses erklären soll, warum sie entweder auf Umlaute
verzichten oder den ominösen String "# -*- coding: Latin-1 -*-"
in jedes Programm tippen sollen.

Kann mir von den Experten hier jemand erklären, warum überhaupt
der gesamte Quelltext _vor_ der Syntaxanalyse umcodiert werden
soll? (Sonst wären ja Kommentare syntaktisch zu erkennen und
könnten ignoriert werden.) Die Python-Quellen selbst durften ja
schon bisher außerhalb von Strings und Kommentaren nur ASCII pur
enthalten; wenn das weiterhin so bleibt, würde es doch reichen,
die Unicode-String-Konstanten aus einer source-spezifischen
Kodierung in Unicode zu konvertieren. Daß in irgendeiner
Quellkodierung auch alternative Zeilenwechsel oder Quotes
enthalten sein könnten, heißt doch nicht, daß man diese auch
benutzen muß?!

Sorry, auch nochmaliges Lesen von PEP 263 hat mir keine echte
Erleuchtung gebracht, und die Diskussion in c.l.py, die ich bei
Google versucht habe nachzuvollziehen, gibt auch nicht viel her.
(Die "ASCII-Muttersprachler" tun sich überhaupt schwer damit,
das Problem zu erkennen.)

Dies soll keine rhetorische (sprich trollige) Frage sein; ich
sehe im 2.3-Verhalten von Python aber sogar ein potentielles
Sicherheitsproblem, weil in den (lästigen!) Warnungsmeldungen
die erste Zeile auftaucht, die Umlaute o.ä. hat. Wenn sie
Paßwörter oder abfällige Bemerkungen enthält -- was bisher in
einigen Einsatzfällen unkritisch war --, hat der Autor Ärger
am Hals.

  Detlef




More information about the Python-de mailing list