PK> možná pomůže http://www.py.cz/Cestina2X#azen-po-esku.

PK> Jinak funguje toto:

PK> # -*- coding: cp1250 -*-

PK> import locale
PK> # print locale.setlocale(locale.LC_ALL, 'Czech_Czech Republic.1250')
PK> print u'ž', u'ž'.upper()

PK> i toto:

PK> # -*- coding: cp1250 -*-

PK> import locale
PK> print locale.setlocale(locale.LC_ALL, 'Czech_Czech Republic.1250')
PK> print u'ž'.encode("cp1250"), u'ž'.upper().encode("cp1250")

PK> Asi ne všude (myslím Linux), ale na win jo.

Tohle opravdu nefunguje/funguje, akorát nevím proč.

Zkusil jsem tohle:
# -*- coding: cp1250 -*-
#predchozi radek rika v jakem kodovani je muj modul ulozen
import locale
print locale.setlocale(locale.LC_ALL, 'Czech_Czech Republic.1250') #nastavuje 
locale, mimo jine rozsiruje string o znaky narodni abecedy (treba i ž)

print 'ž', 'ž'.upper()   #chybuje - ale proč ???
print u'ž'.encode('cp1250'), u'ž'.upper().encode('cp1250')    #spravne - to 
chapu vystup je treba prevest do ASCII v kodovani kteremu rozumi zobrazovac
print 'ž', unicode('ž','cp1250').upper().encode('cp1250') #takhle si ten prevod 
vynutim sam, to mi prijde ale ze by to nemuselo byt nutne



Může mi někdo vysvětlit, proč 'ž'.upper() chybuje, když podle locale
by měl vědět, jak najít velké Ž a jak zdrojový soubor, tak locale je
nastaveno shodně ?
A proč to dokonce funguje, když neni locale nastavené ?

Přeci locale nastavuje i jiné národní zvyklosti (datum apod), tak proč
mě nutí, abych ho najednou vypnul, když chci porovnat str řetězce ?

-- 
Mirek N.


_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem