[Python] python 3 cgi e lettere accentate
Gianluca Esposito
giaespo a gmail.com
Lun 29 Lug 2013 11:20:04 CEST
Il giorno 29 luglio 2013 11:16, Roberto De Ioris <roberto a unbit.it> ha
scritto:
>
> > 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)
>
Si, è python 3.3.1
Provo a vedere, quindi è lo stdout che ha una codifica ascii,
grazie provo
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130729/85d94ac2/attachment.html>
Maggiori informazioni sulla lista
Python