codifica char pitone
Domanda
Ho il seguente codice:
msgtxt = "é"
msg = MIMEText(msgtxt)
msg.set_charset('ISO-8859-1')
msg['Subject'] = "subject"
msg['From'] = "from@mail.com"
msg['To'] = "to@mail.com"
serv.sendmail("from@mail.com","to@mail.com", msg.as_string())
L'e-mail arrivano con à © come il suo corpo, invece dell'e
attesoho provato:
msgtxt = "é".encode("ISO-8859-1")
msgtxt = u"é"
msgtxt = unicode("é", "ISO-8859-1")
tutto resa lo stesso risultato.
Come per fare questo lavoro?
Ogni aiuto è apprezzato. Grazie in anticipo, J.
Soluzione
msgtxt = "é"
msg.set_charset('ISO-8859-1')
Bene, qual è la codifica del file sorgente contenente questo codice? Se si tratta di UTF-8, che è una buona scelta di default, basta scrivere il é
avrà dato la stringa '\xc3\xa9'
a due byte, che, se visti come ISO-8859-1, si presenta come é
.
Se si desidera utilizzare non-ASCII stringhe di byte nel file di origine, senza doversi preoccupare di quello che codifica l'editor di testo è il risparmio come, utilizzare una fuga letterale di stringa:
msgtxt = '\xE9'
Altri suggerimenti
# coding: utf-8 (or whatever you want to save your source file in)
msgtxt = u"é"
msg = MIMEText(msgtxt,_charset='ISO-8859-1')
Senza la u
il testo sarà nella codifica del sorgente. Come una stringa Unicode, msgtxt verranno codificati nel set di caratteri indicata.