README
1NAME
2 Encode::JP::Emoji - Emoji encodings and cross-mapping tables in pure
3 Perl
4
5SYNOPSIS
6 use Encode;
7 use Encode::JP::Emoji;
8
9 # DoCoMo Shift_JIS <SJIS+F89F> octets to DoCoMo UTF-8 <U+E63E> octets
10 my $sun = "\xF8\x9F";
11 Encode::from_to($sun, 'x-sjis-emoji-docomo', 'utf8');
12
13 # KDDI Shift_JIS <SJIS+F7F5> octets to SoftBank Shift_JIS <SJIS+F747> octets
14 my $scream = "\xF7\xF5";
15 Encode::from_to($scream, 'x-sjis-e4u-kddiapp', 'x-sjis-e4u-softbank3g');
16
17 # DoCoMo UTF-8 <U+E6E2> octets to Google UTF-8 <U+FE82E> octets
18 my $keycap1 = "\xEE\x9B\xA2";
19 Encode::from_to($keycap1, 'x-utf8-e4u-docomo', 'utf8');
20
21 # Google UTF-8 <U+FE001> string to KDDI Shift_JIS <SJIS+F7C5> octets
22 my $newmoon = "\x{FE011}";
23 my $kddi = Encode::encode('x-sjis-e4u-kddiweb', $newmoon);
24
25 # SoftBank Shift_JIS <SJIS+F750> octets to SoftBank UTF-8 <U+E110> string
26 my $clover = "\xF7\x50";
27 my $softbank = Encode::decode('x-sjis-emoji-softbank3g', $clover);
28
29DESCRIPTION
30 This module provides encodings which support emoji picture characters.
31
32 The first group of encodings uses carriers' private code points as
33 Perl's internal string which has UTF-8 flag on.
34
35 Name Encoding Octets Emoji String Emoji
36 --------------------------------------------------------------------
37 x-sjis-emoji-docomo Shift_JIS DoCoMo DoCoMo
38 x-sjis-emoji-kddiapp Shift_JIS KDDI KDDI(app)
39 x-sjis-emoji-kddiweb Shift_JIS KDDI KDDI(web)
40 x-sjis-emoji-softbank2g Shift_JIS SoftBank(2G) SoftBank
41 x-sjis-emoji-softbank3g Shift_JIS SoftBank(3G) SoftBank
42 x-utf8-emoji-docomo UTF-8 DoCoMo DoCoMo
43 x-utf8-emoji-kddiapp UTF-8 KDDI(app) KDDI(app)
44 x-utf8-emoji-kddiweb UTF-8 KDDI(web) KDDI(web)
45 x-utf8-emoji-softbank2g UTF-8 SoftBank(2G) SoftBank
46 x-utf8-emoji-softbank3g UTF-8 SoftBank(3G) SoftBank
47 --------------------------------------------------------------------
48
49 KDDI has two version of thier private code points. KDDI(app) is official
50 and documented version used in EZappli and character references.
51 KDDI(web), on the other hand, is undocumented version but used in UTF-8
52 web pages. Use KDDI(web) encoding recommended in most cases.
53
54 SoftBank also has two version of thier emoji representations.
55 SoftBank(2G) uses escape sequence style. SoftBank(3G) uses binary
56 representations. Use SoftBank(3G) encoding recommended in most cases.
57
58 The second group uses Googles's private code points internaly. This
59 means Google's encoding could be the interchange encoding for others.
60
61 Name Encoding Octets Emoji String Emoji
62 --------------------------------------------------------------------
63 x-sjis-e4u-docomo Shift_JIS DoCoMo Google
64 x-sjis-e4u-kddiapp Shift_JIS KDDI Google
65 x-sjis-e4u-kddiweb Shift_JIS KDDI Google
66 x-sjis-e4u-softbank2g Shift_JIS SoftBank(2G) Google
67 x-sjis-e4u-softbank3g Shift_JIS SoftBank(3G) Google
68 x-utf8-e4u-docomo UTF-8 DoCoMo Google
69 x-utf8-e4u-kddiapp UTF-8 KDDI(app) Google
70 x-utf8-e4u-kddiweb UTF-8 KDDI(web) Google
71 x-utf8-e4u-softbank2g UTF-8 SoftBank(2G) Google
72 x-utf8-e4u-softbank3g UTF-8 SoftBank(3G) Google
73 --------------------------------------------------------------------
74
75 The cross-carriers mapping tables are based on emoji4unicode, Emoji for
76 Unicode, project on Google Code. See more detail on
77 <http://code.google.com/p/emoji4unicode/> about the project.
78
79 The next group also uses Google's.
80
81 Name Encoding Octets Emoji String Emoji
82 --------------------------------------------------------------------
83 x-utf8-e4u-unicode UTF-8 Unicode Std. Google
84 x-utf8-e4u-google UTF-8 Google Google
85 x-utf8-e4u-mixed UTF-8 (mixed) Google
86 --------------------------------------------------------------------
87
88 "x-utf8-e4u-unicode" encodes the Unicode 6.0 emojis.
89
90 "x-utf8-e4u-google" does NO translations and exists only for useful.
91
92 "x-utf8-e4u-mixed" accepts all emojis of three mobile carriers mixed. On
93 decoding, however, KDDI(app) emojis would be broken as they have
94 conflicts with SoftBank emojis. So DO NOT use KDDI(app) with this. On
95 encoding, this replaces Google emojis to others definitively. This
96 encoding is friendly for Encode::JP::Mobile and MySQL 5.4. Note that
97 MySQL before 5.5.3 does not support four bytes UTF-8 including both
98 Google and Unicode Standard emojis.
99
100 Tha last group rejects any emojis above. You would use these encodings
101 with Encode::JP::Emoji::FB_EMOJI_TEXT fallback functions.
102
103 Name Encoding
104 --------------------------------------------------------------------
105 x-sjis-emoji-none Shift_JIS
106 x-utf8-emoji-none UTF-8
107 x-sjis-e4u-none Shift_JIS
108 x-utf8-e4u-none UTF-8
109 --------------------------------------------------------------------
110
111DEPENDENCIES
112 This module requires Perl version 5.8.1 or later.
113
114 Unicode::Emoji::E4U is not required on run time.
115
116LINKS
117 * Subversion Trunk
118
119 <http://emoji4unicode-ll.googlecode.com/svn/trunk/lang/perl/Encode-J
120 P-Emoji/trunk/>
121
122 * Project Hosting on Google Code
123
124 <http://code.google.com/p/emoji4unicode-ll/>
125
126 * Google Groups and some Japanese documents
127
128 <http://groups.google.com/group/emoji4unicode-ll>
129
130 * RT: CPAN request tracker
131
132 <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Encode-JP-Emoji>
133
134 * AnnoCPAN: Annotated CPAN documentation
135
136 <http://annocpan.org/dist/Encode-JP-Emoji>
137
138 * Search CPAN
139
140 <http://search.cpan.org/dist/Encode-JP-Emoji/>
141
142AUTHOR
143 Yusuke Kawasaki, <http://www.kawa.net/>
144
145SEE ALSO
146 Encode and Unicode::Emoji::E4U
147
148COPYRIGHT
149 Copyright 2009-2010 Yusuke Kawasaki, all rights reserved.
150
151