The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Encode::MIME::EncWords::JA_JP - MIME の「B」・「Q」ヘッダエンコーディング (代替案)

SYNOPSIS

    use Encode::MIME::EncWords;
    use Encode qw/encode decode/;
    
    # ヘッダデコードする。
    $utf8   = decode('MIME-EncWords', $header);
    
    # 初期のキャラクタセット (UTF-8) でヘッダエンコードする。
    $header = encode('MIME-EncWords', $utf8);
    
    # ほかのキャラクタセットでヘッダエンコードする。
    Encode::MIME::EncWords->config(Charset => 'GB2312');
    $header = encode('MIME-EncWords', $utf8);

ABSTRACT

このモジュールは、RFC 2047 に述べる MIME のヘッダエンコーディングを実装している。 エンコーディングの名前には、みっつの変種と、 キャラクタセットに特化したひとつの簡易版がある。

  エンコーディング名         encode() の結果        備考
  ------------------------------------------------------------------
  MIME-EncWords              (B と Q を自動判別)
  MIME-EncWords-B            =?XXXX?B?...?=         初期値は UTF-8。
  MIME-EncWords-Q            =?XXXX?Q?...?=                ,,
  MIME-EncWords-ISO_2022_JP  =?ISO-2022-JP?B?...?=

decode() の結果は、どのエンコーディングでも同じになる。

DESCRIPTION

このモジュールは、Encode::MIME::Header コアモジュールが提供する MIME-* エンコーディングの代替となることを意図している。 このモジュールの使いかたをよく知るためには、Encode を参照してほしい。

モジュール独自の機能

config(KEY => VALUE, ...);

クラスメソッド。 KEY => VALUE の対でオプションを設定する。 次のオプションが使える。

Charset

[encode] データ要素を変換するのに使うキャラクタセット。 初期値は "UTF-8"MIME-EncWords-ISO_2022_JP では "ISO-2022-JP" に固定。

Detect7bit

[decode/encode] エンコードされていない部分の 7 ビットキャラクタセットを判別しようとする。 初期値は "YES"

Field

[encode] ヘッダフィールドの名前。エンコードされた結果の最初の行で、 これの長さが考慮される。 初期値は undef

Mapping

[decode/encode] キャラクタセットの名前に対して実際に使うマッピングを指定する。 初期値は "EXTENDED"

MaxLineLen

[encode] 行の最大長 (改行を除く)。 初期値は 76

Minimal

[encode] エンコーディングを最小限にするか否か。 初期値は "YES"

オプションの詳細については MIME::EncWords::JA_JP を参照。

CAVEAT

  • MIME ヘッダエンコーディング用のエンコーディングモジュールは、 こみいったヘッダフィールドを簡単に作り出したり、 そこから望みの要素を取り出したりできる打ち出の小槌ではない。

    アドレスヘッダフィールド (To:、From: など) をデコードするには、 まず mailbox-list を分解する。 そして、個々の要素をエンコーディングモジュールでデコードする。 これをエンコードするには、 今度は個々の要素をエンコーディングモジュールでエンコードする。 そして、エンコードした要素から mailbox-list を組み立てる。 mailbox-list の組み立てや分解には、Mail::Address のようなモジュールが使えるだろう。

  • 行を LF ("\n") で区切る。 RFC5322 は、インターネットのメッセージでは行を CRLF ("\r\n") で区切るとしている。

BUGS

バグやバグのような動作は開発者に知らせてください。

CPAN Request Tracker: http://rt.cpan.org/Public/Dist/Display.html?Name=MIME-EncWords.

VERSION

$VERSION 変数を参照してほしい。

これは実験的なリリースである。仕様は近い将来、変わるかもしれない。

このパッケージの開発版が次の場所にある。 http://hatuka.nezumi.nu/repos/MIME-EncWords/

SEE ALSO

Encode, Encode::MIME::Header, MIME::EncWords::JA_JP.

RFC 2047 MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text.

AUTHOR

Hatuka*nezumi - IKEDA Soji <hatuka(at)nezumi.nu>

COPYRIGHT

Copyright (C) 2011 Hatuka*nezumi - IKEDA Soji.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.