Eingabeaufforderung

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
Anfänger1911
User
Beiträge: 62
Registriert: Donnerstag 17. November 2005, 16:25

Wenn ich mein Programm über die Eingabeaufforderung starte werden ä,ö,ü und ß immer nicht richtig angezeigt, sondern z.b. so: a³!
Kann ich das ändern und wenn ja wie?
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Windows User?
Wenn ja, da musst du ASCII ausgeben:

Code: Alles auswählen

#coding: utf-8
print u"Hällo Wörld".decode("utf-8").encode("ascii")
unter Linux ist das natürlich nicht der Fall, da gehts auch ohne.
TUFKAB – the user formerly known as blackbird
Anfänger1911
User
Beiträge: 62
Registriert: Donnerstag 17. November 2005, 16:25

Das dauert aber lange und ist ziemlich kompliziert! Geht das nicht noch anders und schneller?
BlackJack

blackbird hat geschrieben:Windows User?
Wenn ja, da musst du ASCII ausgeben:

Code: Alles auswählen

#coding: utf-8
print u"Hällo Wörld".decode("utf-8").encode("ascii")
In ASCII gibt's keine Umlaute, die Zeile gibt einen der beliebten `UnicodeEncodeError`. :-)

@Anfänger1911: In einer perfekten Welt müsste es ausreichen in der Quelltextdatei die Kodierung mit der entsprechenden Kommentarzeile anzugeben. Die Umgebung sollte dann dem laufenden Programm mitteilen welche Kodierung für die Ausgabe erwartet wird. Unter Linux klappt das auch. Keine Ahnung wie es da unter Windows bzw. DOS-Eingabeaufforderungen aussieht.

Zeichensatzkodierungen und Unicode sind auf jeden Fall ein Thema mit dem man sich auseinandersetzen muss, wenn man "nicht-englische" Zeichen verwendet. Ist leider auch ein recht verwirrendes Thema.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hab selber mal ein Test gemacht:

Code: Alles auswählen

# -*- coding: latin-1 -*-

print u"test: äöüß"
Wenn man das in der cmd startet, sind die Umlaute OK.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Das u besser weglassen.

Wichtig ist das kommentar "latin-1" in der ersten (oder zweiten) Zeile
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Nep! Wenn ich das u eglasse kommt in der cmd nur blödsinn, in SciTE klappt es aber... Dafür klappt es in Scite nicht, wenn ein u drin steht :roll:

Mit meinem md5sum_calc hab ich eigentlich die selben Probleme... Dort werden Sonderzeichen in Dateinamen nicht richtig angezeigt. Allerdings werden sie richtig in die *.md5-Datei geschrieben. Auch der Dateiname der *.md5-Datei ist richtig... Und solange es nur die eigentliche Anzeige kapputt ist, ist's mir egal :?

Das Problem kenne ich allerdings auch bei Batch-Verabrbeitung... Es liegt daran, das Windows einen anderen Zeichensatz verwendet als die cmd :roll: Welche das aber jetzt genau sind, weiß ich auf die schnelle nicht.

EDIT: ...suche... Es ist immer die Rede von ANSI (Windows) und erweiterte ACSII (DOS/cmd). Aus selfhtml
selfhtml hat geschrieben:Microsoft DOS beispielsweise benutzt einen "erweiterten ASCII-Zeichensatz", der aber nicht viel mehr ist als eine schöne Umschreibung für die Microsoft-eigene Belegung der Zeichen 128 bis 255 speziell für die Bedürfnisse von MS DOS.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
johannes
User
Beiträge: 8
Registriert: Sonntag 6. November 2005, 17:37
Wohnort: München

jens hat geschrieben: Das Problem kenne ich allerdings auch bei Batch-Verabrbeitung... Es liegt daran, das Windows einen anderen Zeichensatz verwendet als die cmd :roll: Welche das aber jetzt genau sind, weiß ich auf die schnelle nicht.
Soviel ich weis gibt es unter Windows (zumindest in der deutschen Version) CP-1252 als sogenanntes win-latin-1, d.h. es entspricht Latin-1, hat jedoch an einigen Stellen doch andere Zeichen.

Auserdem verwendet Windows UTF-8 und auch UTF-16 (ob LE oder BE) weis ich leider nicht.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Einfach den Windows Support für Umlaute weglassen :-)
TUFKAB – the user formerly known as blackbird
Anfänger1911
User
Beiträge: 62
Registriert: Donnerstag 17. November 2005, 16:25

blackbird hat geschrieben:Einfach den Windows Support für Umlaute weglassen :-)
Und wie mache ich das?
Antworten