Tento "program" vám bude vždy češtinu tisknout dobře, protože ve stejném
kodovani čte i tiskne:
text=raw_input("Zadej cesky text: ")
print text
Pokud chcete text převést na unicode, musíte nejdřív vědět, v kterém
kodovani byl pořízen. Třeba u mě na konsoli Windows to je cp852. V IDLE
to je "cp1250", v mém Linuxu to je tuším iso-8859-2. Takže když z toho
chci udělat unicode, musím to převést takto:
text=raw_input("Zadej cesky text: ")
print unicode(text,"cp852") # pro konsoli windows
Tímto způsobem to tiskne taky dobře (stejně jako v předchozím případě),
ale navíc, to můžete použít kdekoliv chcete, protože to je unicode.
Navíc, pokud budete zadávat řetězce přímo v textu programu, musíte před
ně dát "u" a na první řádek doplnit informaci o použitém kodovaní.
To přesměrování do souboru, kde to hází chybu, můžete ukázat kod?
geon
Radek Kubicek napsal(a):
Zdravím.
Mám následující problém. Dělám aplikaci, ve které bych chtěl používat
řetězce tím stylem, že se všechny převádí do UTF-8 a pracuje se s ním.
Ale problém je v tom, že když zadám nějaký řetězec a načtu ho do
proměnné (např. str), potom str.encode('utf-8') i str.decode('utf-8') i
unicode(str, 'utf-8') vyhodí výjimku...
A i pokud se mi to podaří tak, že řetězce se převedou a v pořádku
vypíší, pokud tento výstup přesměruju do souboru (pomocí: aplikace >
soubor), vyhodí mi to UnicodeError při prvním non-ascii znaku.
Nevíte někdo, jak na to?
RK
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python