root/lang/perl/Encode-JP-Mobile/branches/auto-convert-sjis-pictgram/lib/Encode/JP/Mobile/ConvertPictgramSJIS.pm @ 5182

Revision 5182, 2.3 kB (checked in by chiba, 5 years ago)

[5180]をうけてx-sjis-kddiをConvertPictgramSJISから除去
aliasも整理

Line 
1package Encode::JP::Mobile::ConvertPictgramSJIS;
2use strict;
3use warnings;
4use Encode::Alias;
5
6# sjis
7define_alias('x-sjis-imode'         => 'x-sjis-docomo');
8define_alias('x-sjis-ezweb-auto'    => 'x-sjis-kddi-auto');
9define_alias('x-sjis-airedge'       => 'x-sjis-airh');
10define_alias('x-sjis-vodafone'      => 'x-sjis-softbank');
11define_alias('x-sjis-vodafone-auto' => 'x-sjis-softbank-auto');
12
13# backward compatiblity
14define_alias('shift_jis-imode'      => 'x-sjis-imode');
15define_alias('shift_jis-kddi-auto'  => 'x-sjis-kddi-auto');
16define_alias('shift_jis-airedge'    => 'x-sjis-airh');
17define_alias('shift_jis-docomo'     => 'x-sjis-imode');
18define_alias('shift_jis-ezweb'      => 'x-sjis-kddi');
19define_alias('shift_jis-ezweb-auto' => 'x-sjis-kddi-auto');
20define_alias('shift_jis-airh'       => 'x-sjis-airh');
21
22
23define_alias('shift_jis-softbank' => 'x-sjis-softbank');
24define_alias('shift_jis-vodafone' => 'x-sjis-vodafone');
25
26no strict 'refs';
27for 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
571;
58__END__
59
60=head1 NAME
61
62Encode::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
78Masahiro Chiba
79
80=head1 SEE ALSO
81
82L<Encode::JP::Mobile>
83
Note: See TracBrowser for help on using the browser.