Gast
#1928124
Mhh, wie bekomme ich Python unter Windows cmd.exe dazu, mir das Gradzeichen auszuspucken?
1 | |
2 | |
Erzeugt zwei Müllzeichen
1 | |
Erzeugt ein Müllzeichen Direkt:
1 | |
2 | |
funktioniert dagegen.
|
Anzeige
|
python, cmd.exe: print "°"
Gast
#1928124
Mhh, wie bekomme ich Python unter Windows cmd.exe dazu, mir das Gradzeichen auszuspucken?
Erzeugt zwei Müllzeichen
Erzeugt ein Müllzeichen Direkt:
funktioniert dagegen.
Gast
#1928129
wow, google is fast. for international folks: centigrade, degree symbol, garbage, celsius. Dein Eingabetext ist UTF-8, das windows cmd.exe spricht vermutlich CP 1252. Probier mal
Viele Grüße,
Simon
Gast
#1928217
Hat dasselbe Ergebnis wie ein nicht-UTF-8 kodiertes Skript:
Gast
#1928239
das
macht das:
Font im "Dos-Fenster" ist Lucida Console
Gast
#1928246
print u"°" klappt.
Gast
#1928393
print u"{:2d} °C".format( 42) klappt nicht.
Gast
#1928396
klappt doch, es geht mit format() allerdings nicht. Das "DOS-Fenster" ist keines, aber es nutzt standardmäßig CP437 bzw. 850, und nicht 1252. Mit den Win32-API-Funktionen SetConsoleOutputCP und SetConsoleCP lässt sich die von Konsolenprozessen verwendete Codepage einstellen. Sinnvolle Resultate erhält man allerdings nur, wenn die Konsole nicht einen der standardmäßig eingerichteten Pixelfonts verwendet, denn die sind ausschließlich auf CP437/850 ausgerichtet. "Lucida Console" ist genauso wie "Andale Mono" oder "Consolas" ein vollwertiger Truetype-Font, weist dieses Problem also nicht auf. Seit Vista ist es übrigens endlich möglich, die verwendete Schriftart eines Konsolenfenster programmatisch festzulegen, dazu dient die Win32-API-Funktion SetCurrentConsoleFontEx. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|