[Python] python 3 cgi e lettere accentate

Roberto De Ioris roberto a unbit.it
Lun 29 Lug 2013 11:16:10 CEST


> salve a tutti,
> ho un problemino con le lettere accentate in una applicazione cgi dal
> quale
> non riesco ad uscire.
> Questo ט il mio banalissimo codice che non funziona!
>
> #!/usr/bin/python
> # -*- coding: utf-8 -*-
> s="<html><body><h1>אטלעש</h1></body></html>"
>
>
> print("Content-Type: text/html;charset=UTF-8")
> print('\n')
> print(s)
>
> Nell'error.log di apache ho questo errore:
> UnicodeEncodeError: 'ascii' codec can't encode characters in position
> 16-20: ordinal not in range(128)
>
> Ovviamente tutto funziona se metto dei caratteri ascii al posto delle
> lettere accentate
>
> La domanda ט, se setto il coding del file e il charset http in utf-8 e le
> stringhe in python3 sono in unicode, questo ascii codec da dove viene
> fuori? c'ט qualche modo (immagino semplice, data la mia ignoranza su
> unicode e gli encoding in generale) per ovviare a questo e visualizzare
> correttamente le lettere accentate e gli altri caratteri non in
> range(128)?
>
> grazie a tutti,
>
> Gianluca Esposito
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>

Verifica che sia almeno python 3.2, su quelli prima il modulo cgi e' rotto
(per risolvere dovresti chiudere a riaprire stdin/stdout/stderr con
un'altra codifica, su google trovi sicuramente qualcosa)

-- 
Roberto De Ioris
http://unbit.it


Maggiori informazioni sulla lista Python