Umlaute verwenden können

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
DMD
User
Beiträge: 123
Registriert: Sonntag 17. Mai 2015, 03:34

hab mein programm jetzt fertig, nur kann ich keine umlaute verwenden :(
gibt es ein modul für die verwendung von umlauten?
hab sowas wie

Code: Alles auswählen

from string import ascii_letters
komischerweise hat das mal im gesamten programm funktioniert.
leider hab ich dann versucht, python27 auf einen stick zu installieren, da is dann wohl was
schiefgelaufen, so dass ich dann damit mein python27 auf meinem laptop zerschossen hab.
jetzt habe ich alles wieder korrekt funktionsfähig.
wenn ich aber jetzt auf dem laptop oben genanntes modul in den code einbinde,
beschwert er sich, dass ich umlaute verwende!
Versteh ich nicht, hat doch vorher auch funktioniert!
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Du müsstest schon präziser beschreiben, *was* nicht funktioniert und *wie* sich das äußert! (Am besten mit kompletter Fehlermeldung / Call-Stack und Code-Passsagen oder Minimalbeispiel mit dem Fehler)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Üpsilon
User
Beiträge: 225
Registriert: Samstag 15. September 2012, 19:23

Was Umlaute im Programm >außerhalb< von Strings betrifft, da kann man an den Anfang des Programms einfach

Code: Alles auswählen

# -*- coding:utf-8 -*-
schreiben und dann gehts. Dann muss man nur darauf achten, dass die Datei tatsächlich mit UTF-8 kodiert ist.
PS: Die angebotene Summe ist beachtlich.
Benutzeravatar
snafu
User
Beiträge: 6831
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

@Üpsilon: Die von dir gezeigte Zeile sorgt dafür, dass der Programmcode des entsprechenden Pythonmoduls im richtigen Encoding eingelesen wird. Das hat nichts damit zu tun, ob es z.B Umlaute sind, die nur außerhalb eines Strings stehen. Man bekommt die Probleme ohne diese Zeile genau so, wenn man irgendwo im Code einen String hat, in dem beispielsweise "späm" steht.

Wir wissen bisher aber auch nicht, ob der Threadersteller Probleme mit Umlauten im Programmcode hat oder ob es um die Anzeige eines Strings mit Umlauten zur Laufzeit geht. Denn wenn etwas zur Laufzeit angezeigt wird, dann kann es ja auch eine Benutzereingabe sein, die dann natürlich nicht fest im Programmcode stehen würde. Dann würde dein Vorschlag nicht weiterhelfen.
DMD
User
Beiträge: 123
Registriert: Sonntag 17. Mai 2015, 03:34

genau das ist ja mein problem.
ich habs immer nach hinten verschoben...
in meinem code verwende ich nur "ue, ae, oe".
eingabe durch benutzer müssen auch so eingeben werden.
daher würde ich gern verhindern, so etwas peinliches wie:
"ES DUEUEUERFEN KEINE UMLAUTE EINGEGEBEN WERDEN"
dort reinschreiben zu müssen.
muß ich das jetzt alles per hand nochmal äääändern???
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Du musst überhaupt erstmal verstehen was es mit Unicode und Encodings auf sich hat, nicht bis ins letzte Detail aber zumindest die Grundlagen. Wieviel du dann ändern musst wirst du dann schon sehen.
Sirius3
User
Beiträge: 18216
Registriert: Sonntag 21. Oktober 2012, 17:20

@DMD: was passiert denn, wenn Umlaute eingegeben werden? Es gibt dann wohl einen Fehler. Folglich solltest Du also den Fehler beheben und uns nicht herumrätseln lassen, was Du eigentlich willst.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Na dann verweise ich wie immer auf meine Signatur ;-)

Durch die verlinkten Seiten solltest Du die Grundlagen bezüglich Encodings und Unicode locker erlernen können :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten