| Encode-JP-Mobile documentation | Contained in the Encode-JP-Mobile distribution. |
Encode::JP::Mobile::MIME - 絵文字を含んだメールのSubject用MIMEエンコーディング
Encode::decode('MIME-Header-JP-Mobile-DoCoMo', $email->header('subject'));
Encode::encode('MIME-Header-JP-Mobile-DoCoMo', "\x{E63E}です"); # =?SHIFT_JIS?B?+J+CxYK3?=
Encode::encode('MIME-Header-JP-Mobile-DoCoMo-SJIS', "\x{E63E}です"); # =?SHIFT_JIS?B?+J+CxYK3?=
Encode::decode('MIME-Header-JP-Mobile-KDDI', $email->header('subject'));
Encode::encode('MIME-Header-JP-Mobile-KDDI', "\x{E63E}です"); # "\xF6\x60\x82\xC5\x82\xB7"
Encode::encode('MIME-Header-JP-Mobile-KDDI-SJIS', "\x{E63E}です"); # "\xF6\x60\x82\xC5\x82\xB7"
Encode::decode('MIME-Header-JP-Mobile-SoftBank', $email->header('subject'));
Encode::encode('MIME-Header-JP-Mobile-SoftBank', "\x{E63E}です"); # =?UTF-8?B?7oGK44Gn44GZ?=
Encode::encode('MIME-Header-JP-Mobile-SoftBank-UTF8', "\x{E63E}です"); # =?UTF-8?B?7oGK44Gn44GZ?=
Encode::encode('MIME-Header-JP-Mobile-SoftBank-SJIS', "\x{E63E}です"); # =?SHIFT_JIS?B?GyRHag+CxYK3?=
Encode::decode('MIME-Header-JP-Mobile-AirH', $email->header('subject'));
Encode::encode('MIME-Header-JP-Mobile-AirH', "\x{E63E}です"); # =?SHIFT_JIS?B?+J+CxYK3?=
Encode::encode('MIME-Header-JP-Mobile-AirH-SJIS', "\x{E63E}です"); # =?SHIFT_JIS?B?+J+CxYK3?=
次項の MIME-Header-JP-Mobile-DoCoMo-SJIS へのエイリアスです。
decode は shift_jis の場合 x-sjis-docomo を利用し絵文字をマッピングします。
が、現在実際のところ(gmail.com などの特別な場合を除き)絵文字はゲタとなって
送られてくるので、このエンコーディングで絵文字を取ることはできないでしょう。
encode は x-sjis-docomo で encode してから MIME エンコードします。
MIME-Header-JP-Mobile-KDDI-SJIS へのエイリアスです。
decode は iso-2022-jp や shift_jis の場合 x-iso-2022-jp-kddi-auto や
x-sjis-kddi-auto を利用し絵文字をマッピングします。
encode は x-sjis-kddi-auto で encode し、au は MIME エンコーディングをすると
化けるためそのまま出力します。
次項の MIME-Header-JP-Mobile-SoftBank-UTF8 へのエイリアスです。
decode は utf-8 や shift_jis の場合 x-utf8-softbank や
x-sjis-softbank を利用し絵文字をマッピングします。
が、現在実際のところ(gmail.com などの特別な場合を除き)絵文字はゲタとなって
送られてくるので、このエンコーディングで絵文字を取ることはできないでしょう。
encode は x-utf8-softbank で encode してから MIME エンコードします。
decode は MIME-Header-JP-Mobile-SoftBank-UTF8 と同じです。
encode は x-sjis-softbank で encode してから MIME エンコードします。
fold はしません。
次項の MIME-Header-JP-Mobile-AirH-SJIS へのエイリアスです。
decode は iso-2022-jp や shift_jis の場合 x-iso-2022-jp-airh や
x-sjis-airh を利用し絵文字をマッピングします。
encode は x-sjis-airh で encode してから MIME エンコードします。
Naoki Tomita <tomita@cpan.org>
| Encode-JP-Mobile documentation | Contained in the Encode-JP-Mobile distribution. |
package Encode::JP::Mobile::MIME; use strict; use warnings; use base 'Encode::Encoding'; use Encode (); use Encode::JP::Mobile; use MIME::Words; sub subject_encoding { Encode::find_encoding('utf-8'); } sub charset_to_encoding { my ($self, $charset) = @_; Encode::find_encoding($charset); } sub encode($$;$){ my ($self, $str, $check) = @_; my $encoding = $self->subject_encoding or die "encoding is not found."; $str = $encoding->encode($str, $check); $str = MIME::Words::encode_mimeword($str, 'B', $encoding->mime_name); return $str; } sub decode($$;$){ my ($self, $str, $check) = @_; my $ret = ""; for my $part (MIME::Words::decode_mimewords($str)) { my ($bytes, $charset) = @$part; my $encoding = $self->charset_to_encoding($charset) or die "encoding is not found for $charset."; $ret .= $encoding->decode($bytes, $check); } return $ret; } 1; __END__