Klaus Meyer <km-news1@onlinehome.de> writes:
Meine Anmerkung oben war etwas zu kurz. Unten will ich Dir ein Beispiel nennen. Du hast recht, falls der Dateiname nur intern zum Öffnen, schreiben+lesen und dann close verwendet wird. In der Praxis kommt dazu aber sehr oft noch zB ein Print oder Log: - Bearbeitet gerade Datei "Name" etc. Diese Stellen brechen alle mit Unicode-Error ab. Module, die früher liefen.
Ein Print oder Log, das früher lief, bricht jetzt mit einem Unicode-Error ab? Etwa so? print dateiname ??? Das glaube ich nicht. Wenn dateiname ein Byte-String ist (wie er es ja sein muss, wenn es alter Code ist), dann funktioniert das print genausogut wie vorher. Was für ein Log Du verwendest, kann ich nur raten, aber ich nehme an, das müsste genauso weiter funktionieren.
zB: tkFileDialog.py: Auswahl eines Files mit Umlaut -> unicode-crash wegen print tkSimpleDialog.py: crasht, wenn man Umlaute eingibt usw.
Ah, tkFileDialog. Ja, das gibt es Unicode-Strings zurück. In Python 2.1 kann man die tatsächlich oft nicht an Datei-Funktionen übergeben. In Python 2.2 unter Windows schon - da wird nämlich das Plattform-Encoding für Dateinamen verwendet. Für Python 2.3 sollte solche Dateinamen sich in allen API-Funktionen verwenden lassen, auf Windows, Unix und Mac. Die Verwendung des system default encoding wäre hier allerdings fatal gewesen: Auf Mac OS X *muss* ein solcher Dateiname UTF-8-kodiert werden, egal, was das Encoding der locale ist.
Diese Kodeteile müssten eigentlich alle überarbeitet werden.
In Python 2.3 sind sie es auch.
Sorry, ich meinte damit: Oft weiss ich, das mein Script nur für einen kleinen Kreis in Deutschland interessant ist und er unter Win läuft und daher nur der Windows-Zeichensatz in Frage kommt. Der große Unicode- Rundumschlag wäre nicht nötig, ASCII + ein paar Umlaute reichten...
Dann läßt sich ein solches Programm ja relativ leich anpassen: Man muss nur an ein paar Stellen die richtigen .encode- und .decode-Aufrufe einfügen, fertig.
Naja, warten wir mal ab. Wie lange gibt es Unicode schon? Etwa 10 Jahre?
Ungefähr, ja.
Es sind immer noch sehr viele Programme nicht Unicode-tauglich.
Das ist ja auch gar nicht erforderlich: Sehr viele Programme sollen auch gar nicht mit nicht-ASCII-Text arbeiten. Diejenigen, die es sollen, muss man halt anpassen. Ciao, Martin _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de