[python] Problém s českými znaky v cgi scriptu

Petr Messner petr.messner na gmail.com
Pondělí Únor 27 21:13:30 CET 2012


Zkusil bych něco takového:

http://stackoverflow.com/a/4374457/196206

Tedy

sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())

Zřejmě pak nebude nutné používat str.encode().

Ad "Myslel jsem, že python3 funguje na utf-8" - Python 3 pracuje s
unicode, to, jaké kódování používá pro komunikaci s okolím, si domýšlí
z proměnných prostředí, případně z nějakého nastavení.


PM

2012/2/27 Tomáš Kácel <kiclus6 na gmail.com>:
> Zdravím,
> dostal jsem problém při zobrazování českých znaků v cgi scriptu,
> hledal jsem na internetu nějaká řešení co s tím, ale nějak jsem
> nepochodil. Například v takovémto jednoduchém kódě:
>
> #!/usr/bin/env python3
>
> #print ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//
> EN">')
> print ('Content-type:text/html; charset="utf-8"\r\n\r\n')
> print ('<html>')
> print ('<head>')
> print ('<title>Vyhledava</title>')
> print ('</head>')
> print ('<body>')
> n="ž".encode("utf-8")
> print(n)
> print(n.decode())
> print ('<h2>This is my CGI program</h2>')
> print ('</body>')
> print ('</html>')
>
> Při otevření v prohlížeči se nezobrazí vůbec nic, protože to selže na
> znaku ž, bez řádku s vypsáním znaku ž se zobrazí: this is my cgi
> program. Myslel jsem, že python3 funguje na utf-8 a neměl by mít s
> čekými znaky problém, stejně tak prohlížeč je nastaven na utf-8.
> Děkuji za radu, nějak nevím co s tím.
> S přáním pěkného dne
> T. Kácel
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python


Další informace o konferenci Python