Umlaute im raw_input

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
MightyM
User
Beiträge: 11
Registriert: Samstag 10. März 2012, 19:06

Freitag 16. März 2012, 21:27

Hallo zusammen,

weiss jemand wie man Umlaute in einem raw_input darstellen kann, sodass Python, wenn man es als exe ausführt, nicht gleich abkackt?
bisher hab ich es so versucht:

Code: Alles auswählen

# -*- coding: iso-8859-1 -*-
str(raw_input(u"ähnlich"))
Aber wenn man das Programm ausführt schliesst es sich gleich wieder.

Gruss
Mike
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Freitag 16. März 2012, 21:40

1. Lies http://wiki.python-forum.de/FAQ#Wie_sta ... Skripte.3F damit kannst du auch die Fehlermeldung lesen.
2. Das Default-Encoding in Python 2 ist `ascii` damit kann man kein 'ä' kodieren, d.h. du wirst einen `UnicodeEncodeError` sehen.
3. Um das zu beheben, musst du deinen Unicode String fuer dein Ausgabeterminal richtig kodieren, zb mit

Code: Alles auswählen

import sys
raw_input(u'ähnlich'.encode(sys.stdout.encoding))
Das Coding Cookie am Anfang der Datei hat darauf keinen Einfluss, sondern nur darauf, dass dein 'ähnlich' aus der Python-Datei richtig dekodiert werden kann. Stimmt _dieses_ Encoding nicht, kann das auch ein Grund fuer den Fehler sein.
MightyM
User
Beiträge: 11
Registriert: Samstag 10. März 2012, 19:06

Freitag 16. März 2012, 21:43

Alles klar, danke für die schnelle Hilfe.

Gruss
Antworten