2012-04-01 12 views
4

私は、Mail :: IMAPClientを使ってimapサーバからメールヘッダを取得しています。それは素晴らしい作品です。 ???このPerl文字列はどのようにエンコードされていますか?

  • 件名:国連メッセージエン= UTF-8 B ZnJhbsOnYWlzIMOgIGxhIGNvbg [| | AZ AZ 0-9]ヘッダは、他のすべての文字が含まれている場合しかし、私はこのように見える文字列を添えています== =(元の文字列: "国連のメッセージエンフランス語àラコン")?

  • ボディ: = C3 = A9aeio = C3 = B9 = C3 = A8 = C3 = A8(元の文字列:éaeioùèè)

    1. この奇妙な形式は何ですか?それは有名な "perl文字列 "形式ですか?
    2. 人間のイディオムを処理する最も安全な方法は何ですか? IMAPサーバーから来ていますか?
+0

電子メールで何かを行う予定がある場合は、少なくとも基本的にMIMEに精通している必要があります。 – tripleee

答えて

14

本文のエンコーディングはQuoted-Printableです。ヘッダー(件名)エンコードは、MIMEの "encoded-word"エンコーディング(base64の場合は "B"タイプ)です。両方を処理する最善の方法は、Email::MIMEなどのMIMEを処理できるモジュールに電子メールを渡すか、古いものとバグのあるものMIME::Liteを渡すことです。例えば

:あなたがメッセージ全体の文脈の外でそれらに対処する必要がある場合

# $message was retrieved from IMAP 
my $mime = Email::MIME->new($message); 
my $subject = $mime->header('Subject'); # automatically decoded 
my $body = $mime->body_str; # also automatically decoded 

はしかし、またEncode::MIME::HeaderMIME::QuotedPrintなどのモジュールがあります。

7

それはquoted-printableコード化されています。これは電子メールで使用される標準的なエンコーディングです。 Perlの内部文字列形式とは関係ありません。

関連する問題