Seite 1 von 1

Encoding auf einem Mac

Verfasst: Mittwoch 16. Februar 2011, 20:12
von KlausS
Hallo Liste,

da ich bei meinem Brötchengeben heute ziemliche Probleme mit dem Encoding einer aus Excel exportierten .csv hatte (und diese auch noch nicht zufriedenstellend lösen konnte), wollte ich mich gerade auf meinen Mac etwas intensiver mit diesem Thema beschäftigen. Dazu habe ich mir unter anderem den wiki-Artikel http://wiki.python-forum.de/Von%20Umlau ... 0Encodings zu dem Thema angesehen. Dabei tritt das Problem auf, dass ich in der Konsole keine Umlaute eingeben kann, sobald ich python starte. Die Tastatureingaben werden ignoriert. Folgende Einstellungen liegen vor:
klaus:BeginningPython klaus$ /usr/bin/locale
LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL=
klaus:BeginningPython klaus$ python
Python 2.7.1 (r271:86882M, Nov 30 2010, 10:35:34)
[GCC 4.2.1 (Apple Inc. build 5664)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
>>>
Kann mir mal jemand einen Wink mit dem Zaunpfahl geben.

Danke

Klaus

Re: Encoding auf einem Mac

Verfasst: Mittwoch 16. Februar 2011, 21:30
von Darii
Ich kann ohne Problem Umlaute eingeben. Hast du evtl. kein deutsches System in den Einstellungen der Konsole irgendwelche seltsamen Kodierungen eingestellt?


Edit: Ich sehe gerade, du verwendest 2.7. Probier doch mal die vorinstallierte Apple-Version von Python aus (mit python2.6 oder python2.5 starten).

Re: Encoding auf einem Mac

Verfasst: Mittwoch 16. Februar 2011, 21:37
von KlausS
Nach den oben gezeigten Angaben sollte utf-8 eingestellt sein. Das Problem tritt auch erst dann auf, wenn ich python über die Konsole starte. Vorher werden die Umlaute in der Konsole dargestellt. Auch das aus der Konsole gestartete Beispiel aus dem Tutorial wird angezweigt.
klaus:BeginningPython klaus$ python encoding.py
<type 'str'>
<type 'unicode'>
<type 'str'>
Hallo ?sterreich
Hallo Österreich
Hallo Österreich
Edit: mit Python2.5 und 2.6 ändert sich nichts

Re: Encoding auf einem Mac

Verfasst: Mittwoch 16. Februar 2011, 21:38
von Darii
Vorinstalliertes Python ausprobiert?

Re: Encoding auf einem Mac

Verfasst: Mittwoch 16. Februar 2011, 21:40
von KlausS
Ja, leider keine Änderung :cry:

Re: Encoding auf einem Mac

Verfasst: Donnerstag 17. Februar 2011, 09:42
von nemomuk
Sieht nach einem Terminal Problem aus... hast du die Einstellungen der Terminal.app schonmal durchgeschaut:
-> da gibts einmal beim Tab Einstellungen/Erweitert eine Einstellung -> UTF-8
-> und dann bei Codierung -> Standard Widerherstellen.

Ich nehme mal an du hast Mac OS X > 10.4?

Re: Encoding auf einem Mac

Verfasst: Donnerstag 17. Februar 2011, 14:07
von sma
Das vorinstallierte Python 2.6 (OS X 10.6) macht bei Umlauten einfach nur Beep. Ein mit MacPorts installiertes Python 2.7 zeigt sie problemlos an. Ich vermute, es liegt an dem Ersatz für Readline, den das System-Python benutzt. Ob man aber Umlaute in der Python-Konsole eingeben kann oder nicht, sagt nichts darüber aus, ob und wie Python mit Umlauten und Textencodings umgehen kann. Das können sie beide korrekt.

Stefan

Re: Encoding auf einem Mac

Verfasst: Donnerstag 17. Februar 2011, 18:05
von KlausS
@ahojnnes
Beide Einstellungen stehen auf utf-8. Mehrere Tests mit verschiedenen Einstellungen zeigen keine Änderung. In der Konsole können Umlaute eingegeben, solange kein Python oder iPython gestartet ist. Unter Python/iPython gibt es nur noch einen "Beep" :cry:

@sma
Ich habe per MacPorts 2.7 und gestern abend 2.7.1 installiert. Ich bin mir nicht sicher, ob das Verhalten bei der vorinstallierten Pythonversion auch schon so war, weil ich die Umlaute auf der Konsole ja eher selten oder gar nicht nutzte. Das Problem ist mir erst bei meinen Tests zum Encoding aufgefallen. Bei der Ausgabe von print-Anweisungen aus einem Script werden die Umlaute richtig dargestellt. Da war meine Themenbezeichnung etwas irreführend.

Klaus

Re: Encoding auf einem Mac

Verfasst: Donnerstag 17. Februar 2011, 22:04
von Darii
sma hat geschrieben:Das vorinstallierte Python 2.6 (OS X 10.6) macht bei Umlauten einfach nur Beep.
Ich weiß nicht, was ich falsch mache, aber bei mir gehts. Evtl weil ich readline installiert habe?

Re: Encoding auf einem Mac

Verfasst: Freitag 18. Februar 2011, 01:03
von sma
Darii hat geschrieben:
sma hat geschrieben:Das vorinstallierte Python 2.6 (OS X 10.6) macht bei Umlauten einfach nur Beep.
Ich weiß nicht, was ich falsch mache, aber bei mir gehts. Evtl weil ich readline installiert habe?
Kann ich mir nicht vorstellen, dass das vorinstallierte Python ein nachträglich installiertes libreadline aufpickt. Du probierst wirklich /usr/bin/python in der Version 2.6.1 (24. Juni 2010) aus? Und du hast das nicht mit etwas anderem überinstalliert?

Stefan

Re: Encoding auf einem Mac

Verfasst: Freitag 18. Februar 2011, 08:19
von Darii
sma hat geschrieben:Du probierst wirklich /usr/bin/python in der Version 2.6.1 (24. Juni 2010) aus?
Ja
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Und du hast das nicht mit etwas anderem überinstalliert?
Werde mich hüten. ;)