Umlaute in IDLE

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
anonym14

Hallo Leute,

ich habe ein Problem. Immer wenn ich in IDLE schreibe, dann möchte IDLE das Programm nicht speichern. Wenn ich versuche in Python Shell einfach print("Ä") auszuführen kommt der Fehler: Unsupported characters in input.

Ich weiß, dass es etwas mit dem deutschen Umlaut zu tun hat, aber wie kann ich das beheben?

Danke im Voraus
BlackJack

Also bei mir kommt ein Dialog der mich darauf hinweist, das kein Kodierungskommentar vorhanden ist, wenn ich versuche eine Datei ohne einen solchen Kommentar zu speichern. Ich kann dann trotzdem speichern, aber man sollte natürlich einen entsprechenden Kommentar setzen wenn man möchte, dass das Programm auch ausgeführt werden kann.
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Ich lerne Python zwar erst seit 4 Tagen, aber propier mal das in die erste Zeile. Ich gehe mal davon aus, das du Windows nutzt. Ansonsten bei Linux in die 2. Zeile unter dem Shebang:

Code: Alles auswählen

#-*- coding: cp1252 -*-
anonym14

Danke Dirki, ich kann das Programm speichern und starten. Wenn ich ein print ausführe und dort irgendein Umlaut ist, dann wird die Zeile nicht ausgeführt.

Link Screenshot: http://www.bilder-upload.eu/show.php?fi ... 946924.png
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Hier noch ein paar Codings. Ich weiß nicht welche für dein MAC richtig ist:

Teste die mal nacheinander durch, eine davon sollte eigentlich funktionieren. Wie gesagt, ich beschäftige mich selber erst ein paar Tage mit Python.

Code: Alles auswählen

de_DE       -->  # -*- coding: iso-8859-1 -*-
de_DE@euro  -->  # -*- coding: iso-8859-15 -*-
de_DE.utf8  -->  # -*- coding: utf-8 -*-

de_AT       -->  # -*- coding: iso-8859-1 -*-
de_AT@euro  -->  # -*- coding: iso-8859-15 -*-
de_AT.utf8  -->  # -*- coding: utf-8 -*-
anonym14

Jo, danke. # -*- coding: utf-8 -*- hat funktioniert.

Danke
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Super! Das freut mich!
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Dirki hat geschrieben:Teste die mal nacheinander durch, eine davon sollte eigentlich funktionieren.
Raten beim Programmieren ist Mist. Man sollte die Codierung in die Datei hineinschreiben in der sie auch gespeichert wird, nicht die, mit der es vielleicht zufällig im Moment funktioniert.
Benutzeravatar
Dirki
User
Beiträge: 69
Registriert: Donnerstag 23. Juni 2016, 16:11

Wenn man eine Aussagen treffen muss, über ein System was man nicht kennt bleibt einem halt nichts anderes über.
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Wobei IDLE so intelligent ist, dass es das Fileencoding anhand der Encodingzeile wählt. Das Problem ist nur, dass Colum31 Bytestrings ausgibt, was dann bei einer Unstimmigkeit zwischen Konsolen-Encoding und Fileencoding zu besagtem Problem in der IDLE-Konsole führt. Hatte man korrekterweise gleich mit Unicode-Strings gearbeitet, hätte print die Ausgabe ins Encoding der Konsole konvertiert und es hätte erst gar keine Probleme gegeben.
Antworten