| 1 | package Encode::JP::Mobile::ConvertPictgramSJIS; |
|---|
| 2 | use strict; |
|---|
| 3 | use warnings; |
|---|
| 4 | use Encode::Alias; |
|---|
| 5 | |
|---|
| 6 | # sjis |
|---|
| 7 | define_alias('x-sjis-imode' => 'x-sjis-docomo'); |
|---|
| 8 | define_alias('x-sjis-ezweb-auto' => 'x-sjis-kddi-auto'); |
|---|
| 9 | define_alias('x-sjis-airedge' => 'x-sjis-airh'); |
|---|
| 10 | define_alias('x-sjis-vodafone' => 'x-sjis-softbank'); |
|---|
| 11 | define_alias('x-sjis-vodafone-auto' => 'x-sjis-softbank-auto'); |
|---|
| 12 | |
|---|
| 13 | # backward compatiblity |
|---|
| 14 | define_alias('shift_jis-imode' => 'x-sjis-imode'); |
|---|
| 15 | define_alias('shift_jis-kddi-auto' => 'x-sjis-kddi-auto'); |
|---|
| 16 | define_alias('shift_jis-airedge' => 'x-sjis-airh'); |
|---|
| 17 | define_alias('shift_jis-docomo' => 'x-sjis-imode'); |
|---|
| 18 | define_alias('shift_jis-ezweb' => 'x-sjis-kddi'); |
|---|
| 19 | define_alias('shift_jis-ezweb-auto' => 'x-sjis-kddi-auto'); |
|---|
| 20 | define_alias('shift_jis-airh' => 'x-sjis-airh'); |
|---|
| 21 | |
|---|
| 22 | |
|---|
| 23 | define_alias('shift_jis-softbank' => 'x-sjis-softbank'); |
|---|
| 24 | define_alias('shift_jis-vodafone' => 'x-sjis-vodafone'); |
|---|
| 25 | |
|---|
| 26 | no strict 'refs'; |
|---|
| 27 | for my $carrier (qw/docomo softbank softbank-auto kddi-auto airh/) { |
|---|
| 28 | my $pkg = "Encode::JP::Mobile::_ConvertPictGramSJIS${carrier}"; |
|---|
| 29 | @{"$pkg\::ISA"} = 'Encode::Encoding'; |
|---|
| 30 | $pkg->Define("x-sjis-$carrier"); |
|---|
| 31 | |
|---|
| 32 | *{"$pkg\::decode"} = sub ($$;$) { |
|---|
| 33 | my($self, $char, $check) = @_; |
|---|
| 34 | my $str = Encode::decode("x-sjis-$carrier-raw", $char); |
|---|
| 35 | $_[1] = $str if $check; |
|---|
| 36 | $str; |
|---|
| 37 | }; |
|---|
| 38 | |
|---|
| 39 | *{"$pkg\::encode"} = sub ($$;$) { |
|---|
| 40 | my($self, $str, $check) = @_; |
|---|
| 41 | |
|---|
| 42 | my $utf8_encoding = "x-utf8-$carrier"; |
|---|
| 43 | $utf8_encoding =~ s/-auto$//; |
|---|
| 44 | $utf8_encoding =~ s/-airh$/-docomo/; |
|---|
| 45 | |
|---|
| 46 | $str = Encode::encode($utf8_encoding, $str, $check); |
|---|
| 47 | $str = Encode::decode($utf8_encoding, $str, $check); |
|---|
| 48 | $str = Encode::encode("x-sjis-${carrier}-raw", $str, $check); |
|---|
| 49 | |
|---|
| 50 | $_[1] = $str if $check; |
|---|
| 51 | $str; |
|---|
| 52 | } |
|---|
| 53 | } |
|---|
| 54 | |
|---|
| 55 | |
|---|
| 56 | |
|---|
| 57 | 1; |
|---|
| 58 | __END__ |
|---|
| 59 | |
|---|
| 60 | =head1 NAME |
|---|
| 61 | |
|---|
| 62 | Encode::JP::Mobile::ConvertPictgramSJIS - Pictogram characters conversion at x-sjis encoded |
|---|
| 63 | |
|---|
| 64 | =head1 SYNOPSIS |
|---|
| 65 | |
|---|
| 66 | use Encode::JP::Mobile; |
|---|
| 67 | |
|---|
| 68 | # DoCoMo sunny mark post-ed from charset=sjis page. |
|---|
| 69 | my $text = "\xF8\x9F"; |
|---|
| 70 | $text = decode('x-sjis-docomo', $text); |
|---|
| 71 | |
|---|
| 72 | print encode('x-sjis-kddi-convert_pictgram', $text); # KDDI sunny mark (\xF6\x60) |
|---|
| 73 | print encode('x-sjis-softbank-auto-convert_pictgram', $text); # SoftBank sunny mark (\xF9\x8B) |
|---|
| 74 | |
|---|
| 75 | |
|---|
| 76 | =head1 AUTHOR |
|---|
| 77 | |
|---|
| 78 | Masahiro Chiba |
|---|
| 79 | |
|---|
| 80 | =head1 SEE ALSO |
|---|
| 81 | |
|---|
| 82 | L<Encode::JP::Mobile> |
|---|
| 83 | |
|---|