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

Eingabeaufforderung

Beitragvon Anfänger1911 » Sonntag 20. November 2005, 20:45

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?
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Sonntag 20. November 2005, 21:56

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

Kompliziert

Beitragvon Anfänger1911 » Sonntag 20. November 2005, 22:09

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

Beitragvon BlackJack » Montag 21. November 2005, 01:30

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
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Montag 21. November 2005, 08:03

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.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Montag 21. November 2005, 17:04

Das u besser weglassen.

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

Beitragvon jens » Montag 21. November 2005, 17:39

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.

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

Beitragvon johannes » Dienstag 22. November 2005, 21:40

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.
Benutzeravatar
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Beitragvon mitsuhiko » Mittwoch 23. November 2005, 14:33

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

Beitragvon Anfänger1911 » Mittwoch 23. November 2005, 15:35

blackbird hat geschrieben:Einfach den Windows Support für Umlaute weglassen :-)


Und wie mache ich das?

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]