<div dir="ltr"><div><div><div><div><div><div>salve a tutti,<br></div>ho un problemino con le lettere accentate in una applicazione cgi dal quale non riesco ad uscire.<br></div>Questo è il mio banalissimo codice che non funziona!<br>
<br>#!/usr/bin/python<br># -*- coding: utf-8 -*-<br>s="<html><body><h1>àèìòù</h1></body></html>"<br><br><br>print("Content-Type: text/html;charset=UTF-8")<br>print('\n')<br>
print(s)<br><br></div>Nell'error.log di apache ho questo errore:<br>UnicodeEncodeError: 'ascii' codec can't encode characters in position 16-20: ordinal not in range(128)<br><br></div><div>Ovviamente tutto funziona se metto dei caratteri ascii al posto delle lettere accentate<br>
</div><div><br></div>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)?<br>
<br></div><div>grazie a tutti,<br></div><br></div>Gianluca Esposito<br><div><div><div><br><div><div> <br></div></div></div></div></div></div>