Python Char Encoding
質問
次のコードがあります。
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())
電子メールは、予想されるéの代わりにその体として到着します
私が試してみました :
msgtxt = "é".encode("ISO-8859-1")
msgtxt = u"é"
msgtxt = unicode("é", "ISO-8859-1")
すべて同じ結果が得られます。
これを機能させる方法は?
どんな助けも感謝しています。事前にありがとう、J。
解決
msgtxt = "é"
msg.set_charset('ISO-8859-1')
さて、このコードを含むソースファイルのエンコードは何ですか? UTF-8の場合、これは適切なデフォルトの選択です。 é
2バイトの文字列を提供します '\xc3\xa9'
, 、これは、ISO-8859-1と見なされると、 é
.
テキストエディターが保存しているエンコードを心配することなく、ソースファイルで非ASCIIバイト文字列リテラルを使用したい場合は、文字列リテラルエスケープを使用します。
msgtxt = '\xE9'
他のヒント
# coding: utf-8 (or whatever you want to save your source file in)
msgtxt = u"é"
msg = MIMEText(msgtxt,_charset='ISO-8859-1')
なしで u
テキストはソースエンコーディングに含まれます。 Unicode文字列として、MSGTXTは指定された文字セットでエンコードされます。
所属していません StackOverflow