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@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a