Seite 1 von 1

Eingabeaufforderung

Verfasst: Sonntag 20. November 2005, 20:45
von Anfänger1911
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?

Verfasst: Sonntag 20. November 2005, 21:56
von mitsuhiko
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.

Kompliziert

Verfasst: Sonntag 20. November 2005, 22:09
von Anfänger1911
Das dauert aber lange und ist ziemlich kompliziert! Geht das nicht noch anders und schneller?

Verfasst: Montag 21. November 2005, 01:30
von 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.

Verfasst: Montag 21. November 2005, 08:03
von jens
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.

Verfasst: Montag 21. November 2005, 17:04
von Joghurt
Das u besser weglassen.

Wichtig ist das kommentar "latin-1" in der ersten (oder zweiten) Zeile

Verfasst: Montag 21. November 2005, 17:39
von jens
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.

Verfasst: Dienstag 22. November 2005, 21:40
von johannes
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.

Verfasst: Mittwoch 23. November 2005, 14:33
von mitsuhiko
Einfach den Windows Support für Umlaute weglassen :-)

Verfasst: Mittwoch 23. November 2005, 15:35
von Anfänger1911
blackbird hat geschrieben:Einfach den Windows Support für Umlaute weglassen :-)
Und wie mache ich das?