POD2::JA::Encode::MIME::EncWords3pm
Mime の「b」・「q」ヘッダエンコーディング (代替案)
Usage
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() の結果は、どのエンコーディングでも同じになる。
Overview
このモジュールは、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] を参照。
Caveat
- •
-
MIME ヘッダエンコーディング用のエンコーディングモジュールは、 こみいったヘッダフィールドを簡単に作り出したり、 そこから望みの要素を取り出したりできる打ち出の小槌ではない。
アドレスヘッダフィールド (To:、From: など) をデコードするには、 まず mailbox-list を分解する。 そして、個々の要素をエンコーディングモジュールでデコードする。 これをエンコードするには、 今度は個々の要素をエンコーディングモジュールでエンコードする。 そして、エンコードした要素から mailbox-list を組み立てる。 mailbox-list の組み立てや分解には、Mail::Address のようなモジュールが使えるだろう。
- •
-
行を LF (
"\n") で区切る。 RFC5322 は、インターネットのメッセージでは行を CRLF ("\r\n") で区切るとしている。
Version
$VERSION 変数を参照してほしい。
これは実験的なリリースである。仕様は近い将来、変わるかもしれない。
このパッケージの開発版が次の場所にある。 <http://hatuka.nezumi.nu/repos/MIME-EncWords/>。
Releases
6 releases since Debian 8 (Jessie); the text changed 3 times.