[python] Exec a unicode problem
tezlo
tezlo na gmx.net
Pátek Březen 31 13:27:43 CEST 2017
"David Michal" <dmichal na altien.com> wrote:
> Prave ze to tak neplati uplne. Zkus si spustit tohle:
> #!/usr/bin/python
> #-*- coding: utf8 -*-
>
> sys.stdout
> def out(text):
> print type(text), unicode(text, 'utf8')
>
> s = '®lutý kůň.'
> script1 = "out(s)"
> script2 = "out('®lutý kůň.')"
>
> out(s)
> exec(script1)
> exec(script2)
>
> exec zrejme kodovani uvedene v hlavicce scriptu nebere v potaz.
> Skonci to chybou.
>
> Respektive skonci to chybou na vsech systemech, kde:
> python -c 'import sys; print sys.stdout.encoding' vrati neco jineho
> nez UTF-8.
ne a ne
% python -c 'import sys; print sys.stdout.encoding'
ISO-8859-2
% python testenc.py
<type 'str'> ®lutý kůň.
<type 'str'> ®lutý kůň.
<type 'str'> ®lutý kůň.
se spravne nastavenym prostredim si to python zjisti a vystup prekoduje
% python -c 'import locale; print locale.getdefaultlocale()[1]'
ISO8859-2
Další informace o konferenci Python