Sto diventando unPython: come ottenere StringIO.writelines per accettare una stringa unicode?
UnicodeEncodeError: 'ascii' codec can't encode character u'\xa3' in position 34: ordinal not in range(128)
su una stringa memorizzata in 'a.desc' seguito in quanto contiene il carattere '£'. È archiviato nell'archivio dati di Google App Engine sottostante sotto forma di stringa unicode, quindi va bene. La funzione cStringIO.StringIO.writelines sta cercando apparentemente cercando di codificare in formato ASCII:
result.writelines(['blahblah',a.desc,'blahblahblah'])
Come faccio istruzioni al fine di trattare la codifica unicode come se questo è il fraseggio corretto?
App Engine gira su Python 2.5
Sono passato (cStringIO è destinato a migliorare le prestazioni) e non ha generato un errore, ma ha stampato "£" invece di "£". Perché ora viene visualizzato? – rutherford
'£' è la decodifica Windows-1252 di 0xc2 0xa3 che è la codifica UTF-8 di u '£'. Forse il tuo terminale, app o ovunque tu stia vedendo che è configurato per Windows-1252 anziché UTF-8. – Phil
hmm. Essenzialmente sto guardando una risposta del server web attraverso il browser Chrome. Questo sarebbe il problema? – rutherford