Umlaute und die Kommandozeile

Gute Links und Tutorials könnt ihr hier posten.
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 20. Januar 2006, 19:49

Also ich hab mein Test-Skript nur unter Win gestet und das läuft wunderbar, bis auf die Dateinamen...
Komischerweise funktioniert es nicht in SciTE :shock:
Aber spuckt er mir auch ein outencoding: mbcs aus, was immer das auch sein mag... Hab noch nicht nachgesehen, ob man das irgendwie Einstellen kann...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Samstag 1. April 2006, 17:01

Zu diesem Thema möchte ich noch hierhin verweisen: http://www.python-forum.de/viewtopic.php?t=5095
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
bb1898
User
Beiträge: 130
Registriert: Mittwoch 12. Juli 2006, 14:28

Sonntag 23. Juli 2006, 10:58

gerold hat geschrieben: Das Coding der Konsole bekommst du mit "sys.stdout.encoding" raus.

Unabhängig vom Coding der Konsole gibt es noch das Coding, in dem die Dateinamen gespeichert werden. Dieses Coding bekommst du mit "sys.getfilesystemencoding()" heraus.

Da man in manchen IDEs, beim Ausführen nicht auf "sys.stdout.encoding" zugreifen kann oder einfach nur nichts dabei raus kommt, nehme ich als Alternative noch "sys.getfilesystemencoding()" mit rein. Das klappt bei mir recht gut.

OUTCODING = sys.stdout.encoding or sys.getfilesystemencoding()
FSE = sys.getfilesystemencoding()
So geht es nicht überall: PythonWin (build 208, Python 2.4.3) und Eric (genaue Version ist mir im Moment nicht zugänglich, wahrscheinlich 3.8.xxx oder so) brechen bei der Definition von OUTCODING mit einem AttributeError ab. Also wohl besser, wenn auch umständlicher:

Code: Alles auswählen

try:
    OUTCODING = sys.stdout.encoding
except AttributeError:
    OUTCODING = sys.getfilesystemencoding()
oder ähnlich.
Antworten