0

私は次のコードを持っています:

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。

4

2 に答える 2

1
msgtxt = "é"
msg.set_charset('ISO-8859-1')

さて、このコードを含むソース ファイルのエンコーディングは何ですか? デフォルトの適切な選択である UTF-8 の場合、 を記述するだけéで 2 バイトの文字列 が得られます'\xc3\xa9'。これは、ISO-8859-1 として表示すると のようになりéます。

ソース ファイルで非 ASCII バイト文字列リテラルを使用し、テキスト エディターが保存するエンコーディングを気にする必要がない場合は、文字列リテラル エスケープを使用します。

msgtxt = '\xE9'
于 2010-09-15T22:00:51.723 に答える
0
# 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 は指定された文字セットでエンコードされます。

于 2010-09-16T01:58:23.263 に答える