Encode::JP::Emoji - Emoji encodings and cross-mapping tables in pure Perl
use Encode; use Encode::JP::Emoji; # DoCoMo Shift_JIS <SJIS+F89F> octets to DoCoMo UTF-8 <U+E63E> octets my $sun = "\xF8\x9F"; Encode::from_to($sun, 'x-sjis-emoji-docomo', 'utf8'); # KDDI Shift_JIS <SJIS+F7F5> octets to SoftBank Shift_JIS <SJIS+F747> octets my $scream = "\xF7\xF5"; Encode::from_to($scream, 'x-sjis-e4u-kddiapp', 'x-sjis-e4u-softbank3g'); # DoCoMo UTF-8 <U+E6E2> octets to Google UTF-8 <U+FE82E> octets my $keycap1 = "\xEE\x9B\xA2"; Encode::from_to($keycap1, 'x-utf8-e4u-docomo', 'utf8'); # Google UTF-8 <U+FE001> string to KDDI Shift_JIS <SJIS+F7C5> octets my $newmoon = "\x{FE011}"; my $kddi = Encode::encode('x-sjis-e4u-kddiweb', $newmoon); # SoftBank Shift_JIS <SJIS+F750> octets to SoftBank UTF-8 <U+E110> string my $clover = "\xF7\x50"; my $softbank = Encode::decode('x-sjis-emoji-softbank3g', $clover);
This module provides encodings which support emoji picture characters.
The first group of encodings uses carriers' private code points as Perl's internal string which has UTF-8 flag on.
Name Encoding Octets Emoji String Emoji -------------------------------------------------------------------- x-sjis-emoji-docomo Shift_JIS DoCoMo DoCoMo x-sjis-emoji-kddiapp Shift_JIS KDDI KDDI(app) x-sjis-emoji-kddiweb Shift_JIS KDDI KDDI(web) x-sjis-emoji-softbank2g Shift_JIS SoftBank(2G) SoftBank x-sjis-emoji-softbank3g Shift_JIS SoftBank(3G) SoftBank x-utf8-emoji-docomo UTF-8 DoCoMo DoCoMo x-utf8-emoji-kddiapp UTF-8 KDDI(app) KDDI(app) x-utf8-emoji-kddiweb UTF-8 KDDI(web) KDDI(web) x-utf8-emoji-softbank2g UTF-8 SoftBank(2G) SoftBank x-utf8-emoji-softbank3g UTF-8 SoftBank(3G) SoftBank --------------------------------------------------------------------
KDDI has two version of thier private code points. KDDI(app) is official and documented version used in EZappli and character references. KDDI(web), on the other hand, is undocumented version but used in UTF-8 web pages. Use KDDI(web) encoding recommended in most cases.
SoftBank also has two version of thier emoji representations. SoftBank(2G) uses escape sequence style. SoftBank(3G) uses binary representations. Use SoftBank(3G) encoding recommended in most cases.
The second group uses Googles's private code points internaly. This means Google's encoding could be the interchange encoding for others.
Name Encoding Octets Emoji String Emoji -------------------------------------------------------------------- x-sjis-e4u-docomo Shift_JIS DoCoMo Google x-sjis-e4u-kddiapp Shift_JIS KDDI Google x-sjis-e4u-kddiweb Shift_JIS KDDI Google x-sjis-e4u-softbank2g Shift_JIS SoftBank(2G) Google x-sjis-e4u-softbank3g Shift_JIS SoftBank(3G) Google x-utf8-e4u-docomo UTF-8 DoCoMo Google x-utf8-e4u-kddiapp UTF-8 KDDI(app) Google x-utf8-e4u-kddiweb UTF-8 KDDI(web) Google x-utf8-e4u-softbank2g UTF-8 SoftBank(2G) Google x-utf8-e4u-softbank3g UTF-8 SoftBank(3G) Google --------------------------------------------------------------------
The cross-carriers mapping tables are based on emoji4unicode, Emoji for Unicode, project on Google Code. See more detail on http://code.google.com/p/emoji4unicode/ about the project.
The next group also uses Google's.
Name Encoding Octets Emoji String Emoji -------------------------------------------------------------------- x-utf8-e4u-unicode UTF-8 Unicode Std. Google x-utf8-e4u-google UTF-8 Google Google x-utf8-e4u-mixed UTF-8 (mixed) Google --------------------------------------------------------------------
x-utf8-e4u-unicode encodes the Unicode 6.0 emojis.
x-utf8-e4u-unicode
x-utf8-e4u-google does NO translations and exists only for useful.
x-utf8-e4u-google
x-utf8-e4u-mixed accepts all emojis of three mobile carriers mixed. On decoding, however, KDDI(app) emojis would be broken as they have conflicts with SoftBank emojis. So DO NOT use KDDI(app) with this. On encoding, this replaces Google emojis to others definitively. This encoding is friendly for Encode::JP::Mobile and MySQL 5.4. Note that MySQL before 5.5.3 does not support four bytes UTF-8 including both Google and Unicode Standard emojis.
x-utf8-e4u-mixed
Tha last group rejects any emojis above. You would use these encodings with Encode::JP::Emoji::FB_EMOJI_TEXT fallback functions.
Name Encoding -------------------------------------------------------------------- x-sjis-emoji-none Shift_JIS x-utf8-emoji-none UTF-8 x-sjis-e4u-none Shift_JIS x-utf8-e4u-none UTF-8 --------------------------------------------------------------------
This module requires Perl version 5.8.1 or later.
Unicode::Emoji::E4U is not required on run time.
Subversion Trunk
http://emoji4unicode-ll.googlecode.com/svn/trunk/lang/perl/Encode-JP-Emoji/trunk/
Project Hosting on Google Code
http://code.google.com/p/emoji4unicode-ll/
Google Groups and some Japanese documents
http://groups.google.com/group/emoji4unicode-ll
RT: CPAN request tracker
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Encode-JP-Emoji
AnnoCPAN: Annotated CPAN documentation
http://annocpan.org/dist/Encode-JP-Emoji
Search CPAN
http://search.cpan.org/dist/Encode-JP-Emoji/
Yusuke Kawasaki, http://www.kawa.net/
Encode and Unicode::Emoji::E4U
Copyright 2009-2010 Yusuke Kawasaki, all rights reserved.
To install Encode::JP::Emoji, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Encode::JP::Emoji
CPAN shell
perl -MCPAN -e shell install Encode::JP::Emoji
For more information on module installation, please visit the detailed CPAN module installation guide.