[python] printy v češtině na WINDOWS/cmd konzoli nečitelné

Hynek Fabian hynek.fabian na firma.seznam.cz
Úterý Duben 27 20:00:47 CEST 2010


petrofF (úterý 27 Duben 2010 19:03:16):
> V PyDev/Eclipse je zobrazení (Pydev Console) v pořádku:
> - v editoru nastavené kódování cp1250
> - uvozeno: # -*- coding: cp1250 -*-
> Tentýž script.py je v konzoli (Python 2.5 / Windows XP / cmd: default
> CP=1250) zobrazen chybně:
> Např.:
>  [0x82] é se zobrazí jako Ú
To bude mít možná nějakou souvislost s tím, že dlouhé e není 0x82 ale 0xE9 :-)

konstrukce #-*- coding: cp1250 -*- má vliv pouze na řetezcové literály v kódu,
jestli čteš data odjinud, musíš si je dekódovat sám.
Totéž se týká výstupu, příkaz print respektuje nastavení prostředí, metoda 
write() prostě bleje bajty a překódování je zase na tobě.
V *nixu je prostředí řízeno LC_ALL, jak to řeší wydle netuším. Ale mám 
nepříjemný pocit že cmd.exe simuluje v českých wydlích dosovskou cp852.


Další informace o konferenci Python