File: EncWords.pod

package info (click to toggle)
libmime-encwords-perl 1.014.3-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 252 kB
  • sloc: perl: 868; makefile: 2
file content (160 lines) | stat: -rw-r--r-- 4,764 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
use utf8;

=encoding utf-8

=head1 NAME

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

=head1 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);

=head1 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() の結果は、どのエンコーディングでも同じになる。

=head1 DESCRIPTION

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

=head2 モジュール独自の機能

=over 4

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

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

=over 4

=item Charset

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

=item Detect7bit

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

=item Field

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

=item Mapping

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

=item MaxLineLen

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

=item Minimal

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

=back

オプションの詳細については L<MIME::EncWords~[ja]> を参照。

=back

=head1 CAVEAT

=over 4

=item *

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

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

=item *

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

=back

=head1 BUGS

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

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

=head1 VERSION

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

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

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

=head1 SEE ALSO

L<Encode>, L<Encode::MIME::Header>, L<MIME::EncWords~[ja]>.

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

=head1 AUTHOR

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

=head1 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.


=cut