Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。SieraとPython3.6.0でGmailのメールを取り出すスクリプトを書いています。文字コードがiso-2022-jpのメールはbodyをデコードできるのですが、UTF-8の場合、デコードに失敗します。出力結果を見る限り、文字コードの取得は成功しているようなのですが、なぜUTF-8で失敗するのか、分かりません。どなたか解決方法をご教示頂けないでしょうか。15:25:28iso-2022-jp1行目。return(cnt)##メインmain()ご教示いただいた内容を元に、bodyの取得処理にBase64のデコード処理を追加したところ、UTF-8のメールを正常に取得できるようになりました。以下に修正後のソースを載せます(try句を外して整理しています)。return(0)main()以下のコードでContent-Type内のcharsetを取得できました。email.message_from_string(raw_email.decode(msg_encoding))テストメール2のCjHooYznm67jgIIKMuihjOebruOAggo=はUTF-8文字列をBase64エンコードされているように見えますので、まずBase64デコードが必要です。※蛇足:昔のメールサーバーは7bitコードしか処理できないという制約があり、7bitコードで扱えるように出てきたのがBase64であり、QuotedPrintableであり、ISO-2022-JPです。ISO-2022-JPは一見8bit使用の2byteコードに見えますが各オクテットは7bit範囲内であり、ASCII領域と日本語文字領域の被り部分はエスケープシーケンスを使うことにより切り替えを行います。base64は各byteを6bitづつに区切り、ASCII文字列として再生成する仕組みです。QPはASCII領域はそのまま、それ以外はASCII文字を使用し文字コードで表現する方法です。個の銅バッジH.Mayuさん、ご教示ありがとうございました。14:40今回ご提示のコードはテストコードに見えますが、実際のメールのエンコーディングを調査するにはメールヘッダを見る必要があります。Content-Typeに文字エンコーディング(UTF-8,ISO-2022-jp等).Content-Transfer-Encodingにエンコード情報(base64,quoted-printable等)が記載されています。11:27コメントありがとうございました。汚いですが、以下のコードでContent-Typeから文字コードセットを取得できました。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。ラベル付きメールを読み取りたい0phpでメールフォームを作成し、gmailで受信すると件名が文字化けします。recordの設定の仕方を教えてください。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。