[python] Nastavení default kódování print-u (je?t? jednou)

zu1234 zu1234 na seznam.cz
Čtvrtek Květen 5 14:24:50 CEST 2011


Ještě další komplikace při použití
sys.stdout = codecs.getwriter('iso-8859-2')(sys.stdout)
Rutina optparse na linuxu (python 2.5.2) omdlí kvůli zmatkům v 
decode/encode .

Musel jsem si napsat vlastní zpracování vstupních parametrů.

ZU

Dne 19.4.2011 17:15, zu1234 napsal(a):
> 1) O verzi pythonu nerozhoduji já, ale
> tvůrci knihoven typu pymssql aj.
>
> 2) Ani když nepoužiju string, ale unicode
> tak se problém neodstraní, chybová hláška není kompletní:
>
> #!/usr/bin/python
> # -*- coding: utf-8 -*-
>
> import sys
> import codecs
>
> sys.stderr = codecs.getwriter('cp852')(sys.stderr)
>
> print u"ššš %s" % ()
>
> sys.exit(0) #^^^^^^^^^^^^^^^^^^^^
>
>
> Dne 19.4.2011 16:59, Petr Přikryl napsal(a):
>> Ať se na to díváš jak chceš, vždycky někde nastane nějaká
>> komplikace. Problém je v tom, že string v Pythonu 2.x je posloupnost
>> bajtů a informace o kódování u toho není zachycena.
>>
>> Nakonec jsem dospěl k tomu, že je nutné používat unicode řetězce
>> (i v Pythonu 2). Zatím to může být v reálném provozu utopie, ale
>> je dobré se pomalu přeorientovávat na Python 3.
>>
>> Petr
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>


Další informace o konferenci Python