引き続き携帯ネタ。

携帯の絵文字って各社バラバラで携帯サイトで使おうと すると結構めんどくさいらしい。

じゃあライブラリにまとめて見ようって事でやってみました。

とりあえずググって見たところちゃんと整理しているページがありました。 http://trialgoods.com/emoji/?career=consi&page=3

これをベースに変換テーブルを作ります。

KEITAI.EMOJI = { '晴':{DoCoMo:'&amp;#63647;', AU:'&amp;#xF660;', SoftBank:'\x1b$Gj\x0f'}, '曇':{DoCoMo:'&amp;#63648;', AU:'&amp;#xF665;', SoftBank:'\x1b$Gi\x0f'}, '雨':{DoCoMo:'&amp;#63649;', AU:'&amp;#xF664;', SoftBank:'\x1b$Gk\x0f'}, '雪':{DoCoMo:'&amp;#63650;', AU:'&amp;#xF65D;', SoftBank:'\x1b$Gh\x0f'}, '雷':{DoCoMo:'&amp;#63651;', AU:'&amp;#xF65F;', SoftBank:'\x1b$E]\x0f'}, '台風':{DoCoMo:'&amp;#63652;', AU:'&amp;#xF641;', SoftBank:'\x1b$Pc\x0f'}, '傘':{DoCoMo:'&amp;#63654;', AU:'&amp;#xF3BC;', SoftBank:'\x1b$P\\\x0f'}, '牡羊座':{DoCoMo:'&amp;#63655;', AU:'&amp;#xF667;', SoftBank:'\x1b$F_\x0f'}, '牡牛座':{DoCoMo:'&amp;#63656;', AU:'&amp;#xF668;', SoftBank:'\x1b$F`\x0f'}, '双子座':{DoCoMo:'&amp;#63657;', AU:'&amp;#xF669;', SoftBank:'\x1b$Fa\x0f'}, '蟹座':{DoCoMo:'&amp;#63658;', AU:'&amp;#xF66A;', SoftBank:'\x1b$Fb\x0f'}, '獅子座':{DoCoMo:'&amp;#63659;', AU:'&amp;#xF66B;', SoftBank:'\x1b$Fc\x0f'}, '乙女座':{DoCoMo:'&amp;#63660;', AU:'&amp;#xF66C;', SoftBank:'\x1b$Fd\x0f'}, '天秤座':{DoCoMo:'&amp;#63661;', AU:'&amp;#xF66D;', SoftBank:'\x1b$Fe\x0f'}, '蠍座':{DoCoMo:'&amp;#63662;', AU:'&amp;#xF66E;', SoftBank:'\x1b$Ff\x0f'}, '射手座':{DoCoMo:'&amp;#63663;', AU:'&amp;#xF66F;', SoftBank:'\x1b$Fg\x0f'}, '山羊座':{DoCoMo:'&amp;#63664;', AU:'&amp;#xF670;', SoftBank:'\x1b$Fh\x0f'}, '水瓶座':{DoCoMo:'&amp;#63665;', AU:'&amp;#xF671;', SoftBank:'\x1b$Fi\x0f'}, '魚座':{DoCoMo:'&amp;#63666;', AU:'&amp;#xF672;', SoftBank:'\x1b$Fj\x0f'}, '野球':{DoCoMo:'&amp;#63668;', AU:'&amp;#xF693;', SoftBank:'\x1b$G6\x0f'}, 'ゴルフ':{DoCoMo:'&amp;#63669;', AU:'&amp;#xF7B6;', SoftBank:'\x1b$G4\x0f'}, 'テニス':{DoCoMo:'&amp;#63670;', AU:'&amp;#xF690;', SoftBank:'\x1b$G5\x0f'}, 'サッカー':{DoCoMo:'&amp;#63671;', AU:'&amp;#xF68F;', SoftBank:'\x1b$G8\x0f'}, 'スキー':{DoCoMo:'&amp;#63672;', AU:'&amp;#xF380;', SoftBank:'\x1b$G3\x0f'}, 'バスケ':{DoCoMo:'&amp;#63673;', AU:'&amp;#xF7B7;', SoftBank:'\x1b$PJ\x0f'}, 'ゴール':{DoCoMo:'&amp;#63674;', AU:'&amp;#xF692;', SoftBank:'\x1b$ER\x0f'}, '電車':{DoCoMo:'&amp;#63676;', AU:'&amp;#xF68E;', SoftBank:'\x1b$G>\x0f'}, '地下鉄':{DoCoMo:'&amp;#63677;', AU:'&amp;#xF7EC;', SoftBank:'\x1b$PT\x0f'}, '車':{DoCoMo:'&amp;#63679;', AU:'&amp;#xF68A;', SoftBank:'\x1b$G;\x0f'}, 'バス':{DoCoMo:'&amp;#63681;', AU:'&amp;#xF688;', SoftBank:'\x1b$Ey\x0f'}, '船':{DoCoMo:'&amp;#63682;', AU:'&amp;#xF355;', SoftBank:'\x1b$F"\x0f'}, '飛行機':{DoCoMo:'&amp;#63683;', AU:'&amp;#xF68C;', SoftBank:'\x1b$G=\x0f'}, '家':{DoCoMo:'&amp;#63684;', AU:'&amp;#xF684;', SoftBank:'\x1b$GV\x0f'}, 'ビル':{DoCoMo:'&amp;#63685;', AU:'&amp;#xF686;', SoftBank:'\x1b$GX\x0f'}, '郵便局':{DoCoMo:'&amp;#63686;', AU:'&amp;#xF351;', SoftBank:'\x1b$Es\x0f'}, '病院':{DoCoMo:'&amp;#63687;', AU:'&amp;#xF352;', SoftBank:'\x1b$Eu\x0f'}, '銀行':{DoCoMo:'&amp;#63688;', AU:'&amp;#xF683;', SoftBank:'\x1b$Em\x0f'}, 'ATM':{DoCoMo:'&amp;#63689;', AU:'&amp;#xF67B;', SoftBank:'\x1b$Et\x0f'}, 'ホテル':{DoCoMo:'&amp;#63690;', AU:'&amp;#xF354;', SoftBank:'\x1b$Ex\x0f'}, 'コンビニ':{DoCoMo:'&amp;#63691;', AU:'&amp;#xF67C;', SoftBank:'\x1b$Ev\x0f'}, 'GS':{DoCoMo:'&amp;#63692;', AU:'&amp;#xF78E;', SoftBank:'\x1b$GZ\x0f'}, '駐車場':{DoCoMo:'&amp;#63693;', AU:'&amp;#xF67E;', SoftBank:'\x1b$Eo\x0f'}, '信号':{DoCoMo:'&amp;#63694;', AU:'&amp;#xF642;', SoftBank:'\x1b$En\x0f'}, 'トイレ':{DoCoMo:'&amp;#63695;', AU:'&amp;#xF67D;', SoftBank:'\x1b$Eq\x0f'}, 'レストラン':{DoCoMo:'&amp;#63696;', AU:'&amp;#xF685;', SoftBank:'\x1b$Gc\x0f'}, 'コーヒー':{DoCoMo:'&amp;#63697;', AU:'&amp;#xF7B4;', SoftBank:'\x1b$Ge\x0f'}, 'カクテル':{DoCoMo:'&amp;#63698;', AU:'&amp;#xF69B;', SoftBank:'\x1b$Gd\x0f'}, 'ビール':{DoCoMo:'&amp;#63699;', AU:'&amp;#xF69C;', SoftBank:'\x1b$Gg\x0f'}, 'ハンバーガー':{DoCoMo:'&amp;#63700;', AU:'&amp;#xF6AF;', SoftBank:'\x1b$E@\x0f'}, 'ハイヒール':{DoCoMo:'&amp;#63701;', AU:'&amp;#xF6F3;', SoftBank:'\x1b$E^\x0f'}, 'はさみ':{DoCoMo:'&amp;#63702;', AU:'&amp;#xF6EF;', SoftBank:'\x1b$O3\x0f'}, 'マイク':{DoCoMo:'&amp;#63703;', AU:'&amp;#xF6DC;', SoftBank:'\x1b$G\\\x0f'}, 'ビデオカメラ':{DoCoMo:'&amp;#63704;', AU:'&amp;#xF6F0;', SoftBank:'\x1b$G]\x0f'}, '右斜め上':{DoCoMo:'&amp;#63705;', AU:'&amp;#xF771;', SoftBank:'\x1b$FV\x0f'}, 'ヘッドフォン':{DoCoMo:'&amp;#63707;', AU:'&amp;#xF6E1;', SoftBank:'\x1b$O*\x0f'}, 'アート':{DoCoMo:'&amp;#63708;', AU:'&amp;#xF7B9;', SoftBank:'\x1b$Q"\x0f'}, '演劇':{DoCoMo:'&amp;#63709;', AU:'&amp;#xF3C9;', SoftBank:'\x1b$Q#\x0f'}, 'チケット':{DoCoMo:'&amp;#63711;', AU:'&amp;#xF676;', SoftBank:'\x1b$EE\x0f'}, '喫煙':{DoCoMo:'&amp;#63712;', AU:'&amp;#xF655;', SoftBank:'\x1b$O.\x0f'}, '禁煙':{DoCoMo:'&amp;#63713;', AU:'&amp;#xF656;', SoftBank:'\x1b$F(\x0f'}, 'カメラ':{DoCoMo:'&amp;#63714;', AU:'&amp;#xF6EE;', SoftBank:'\x1b$G(\x0f'}, 'カバン':{DoCoMo:'&amp;#63715;', AU:'&amp;#xF674;', SoftBank:'\x1b$OC\x0f'}, '本':{DoCoMo:'&amp;#63716;', AU:'&amp;#xF677;', SoftBank:'\x1b$Eh\x0f'}, 'リボン':{DoCoMo:'&amp;#63717;', AU:'&amp;#xF7BC;', SoftBank:'\x1b$O4\x0f'}, 'プレゼント':{DoCoMo:'&amp;#63718;', AU:'&amp;#xF6A8;', SoftBank:'\x1b$E2\x0f'}, 'バースデー':{DoCoMo:'&amp;#63719;', AU:'&amp;#xF7BD;', SoftBank:'\x1b$Ok\x0f'}, '電話':{DoCoMo:'&amp;#63720;', AU:'&amp;#xF7B3;', SoftBank:'\x1b$G)\x0f'}, '携帯電話':{DoCoMo:'&amp;#63721;', AU:'&amp;#xF7A5;', SoftBank:'\x1b$G*\x0f'}, 'メモ':{DoCoMo:'&amp;#63722;', AU:'&amp;#xF365;', SoftBank:'\x1b$O!\x0f'}, 'TV':{DoCoMo:'&amp;#63723;', AU:'&amp;#xF6DB;', SoftBank:'\x1b$EJ\x0f'}, 'CD':{DoCoMo:'&amp;#63725;', AU:'&amp;#xF6E5;', SoftBank:'\x1b$EF\x0f'}, 'ハート':{DoCoMo:'&amp;#63726;', AU:'&amp;#xF378;', SoftBank:'\x1b$F,\x0f'}, 'スペード':{DoCoMo:'&amp;#63727;', AU:'&amp;#xF7BE;', SoftBank:'\x1b$F.\x0f'}, 'ダイヤ':{DoCoMo:'&amp;#63728;', AU:'&amp;#xF7BF;', SoftBank:'\x1b$F-\x0f'}, 'クラブ':{DoCoMo:'&amp;#63729;', AU:'&amp;#xF7C0;', SoftBank:'\x1b$F/\x0f'}, '目':{DoCoMo:'&amp;#63730;', AU:'&amp;#xF7C1;', SoftBank:'\x1b$P9\x0f'}, '耳':{DoCoMo:'&amp;#63731;', AU:'&amp;#xF7C2;', SoftBank:'\x1b$P;\x0f'}, 'グー':{DoCoMo:'&amp;#63732;', AU:'&amp;#xF488;', SoftBank:'\x1b$G0\x0f'}, 'チョキ':{DoCoMo:'&amp;#63733;', AU:'&amp;#xF7C3;', SoftBank:'\x1b$G1\x0f'}, 'パー':{DoCoMo:'&amp;#63734;', AU:'&amp;#xF7C4;', SoftBank:'\x1b$G2\x0f'}, '右斜め下':{DoCoMo:'&amp;#63735;', AU:'&amp;#xF769;', SoftBank:'\x1b$FX\x0f'}, '左斜め上':{DoCoMo:'&amp;#63736;', AU:'&amp;#xF768;', SoftBank:'\x1b$FW\x0f'}, '足':{DoCoMo:'&amp;#63737;', AU:'&amp;#xF3EB;', SoftBank:'\x1b$QV\x0f'}, '車椅子':{DoCoMo:'&amp;#63740;', AU:'&amp;#xF657;', SoftBank:'\x1b$F*\x0f'}, '三日月':{DoCoMo:'&amp;#63811;', AU:'&amp;#xF65E;', SoftBank:'\x1b$Gl\x0f'}, '犬':{DoCoMo:'&amp;#63813;', AU:'&amp;#xF6BA;', SoftBank:'\x1b$Gr\x0f'}, '猫':{DoCoMo:'&amp;#63814;', AU:'&amp;#xF6B4;', SoftBank:'\x1b$Go\x0f'}, 'ヨット':{DoCoMo:'&amp;#63815;', AU:'&amp;#xF68D;', SoftBank:'\x1b$G<\x0f'}, 'クリスマス':{DoCoMo:'&amp;#63816;', AU:'&amp;#xF6A2;', SoftBank:'\x1b$GS\x0f'}, '左斜め下':{DoCoMo:'&amp;#63817;', AU:'&amp;#xF772;', SoftBank:'\x1b$FY\x0f'}, '携帯へ':{DoCoMo:'&amp;#63858;', AU:'&amp;#xF7DF;', SoftBank:'\x1b$E$\x0f'}, 'メールへ':{DoCoMo:'&amp;#63859;', AU:'&amp;#xF466;', SoftBank:'\x1b$E#\x0f'}, 'FAXへ':{DoCoMo:'&amp;#63860;', AU:'&amp;#xF6F9;', SoftBank:'\x1b$G+\x0f'}, 'ID':{DoCoMo:'&amp;#63868;', AU:'&amp;#xF35B;', SoftBank:'\x1b$FI\x0f'}, '鍵':{DoCoMo:'&amp;#63869;', AU:'&amp;#xF6F2;', SoftBank:'\x1b$G_\x0f'}, '虫眼鏡':{DoCoMo:'&amp;#63873;', AU:'&amp;#xF6F1;', SoftBank:'\x1b$E4\x0f'}, 'NEW':{DoCoMo:'&amp;#63874;', AU:'&amp;#xF7E5;', SoftBank:'\x1b$F2\x0f'}, '#':{DoCoMo:'&amp;#63877;', AU:'&amp;#xF489;', SoftBank:'\x1b$F0\x0f'}, '1':{DoCoMo:'&amp;#63879;', AU:'&amp;#xF6FB;', SoftBank:'\x1b$F<\x0f'}, '2':{DoCoMo:'&amp;#63880;', AU:'&amp;#xF6FC;', SoftBank:'\x1b$F=\x0f'}, '3':{DoCoMo:'&amp;#63881;', AU:'&amp;#xF740;', SoftBank:'\x1b$F>\x0f'}, '4':{DoCoMo:'&amp;#63882;', AU:'&amp;#xF741;', SoftBank:'\x1b$F?\x0f'}, '5':{DoCoMo:'&amp;#63883;', AU:'&amp;#xF742;', SoftBank:'\x1b$F@\x0f'}, '6':{DoCoMo:'&amp;#63884;', AU:'&amp;#xF743;', SoftBank:'\x1b$FA\x0f'}, '7':{DoCoMo:'&amp;#63885;', AU:'&amp;#xF744;', SoftBank:'\x1b$FB\x0f'}, '8':{DoCoMo:'&amp;#63886;', AU:'&amp;#xF745;', SoftBank:'\x1b$FC\x0f'}, '9':{DoCoMo:'&amp;#63887;', AU:'&amp;#xF746;', SoftBank:'\x1b$FD\x0f'}, '0':{DoCoMo:'&amp;#63888;', AU:'&amp;#xF7C9;', SoftBank:'\x1b$FE\x0f'}, 'OK':{DoCoMo:'&amp;#63920;', AU:'&amp;#xF7CA;', SoftBank:'\x1b$Fm\x0f'}, 'ハート1':{DoCoMo:'&amp;#63889;', AU:'&amp;#xF7B2;', SoftBank:'\x1b$GB\x0f'}, 'ハート2':{DoCoMo:'&amp;#63891;', AU:'&amp;#xF64F;', SoftBank:'\x1b$GC\x0f'}, '嬉顔':{DoCoMo:'&amp;#63893;', AU:'&amp;#xF649;', SoftBank:'\x1b$Gw\x0f'}, '怒顔':{DoCoMo:'&amp;#63894;', AU:'&amp;#xF64A;', SoftBank:'\x1b$Gy\x0f'}, '悲顔':{DoCoMo:'&amp;#63896;', AU:'&amp;#xF397;', SoftBank:"\x1b$P'\x0f"}, '音符':{DoCoMo:'&amp;#63899;', AU:'&amp;#xF7EE;', SoftBank:'\x1b$G^\x0f'}, '温泉':{DoCoMo:'&amp;#63900;', AU:'&amp;#xF695;', SoftBank:'\x1b$EC\x0f'}, 'キスマーク':{DoCoMo:'&amp;#63902;', AU:'&amp;#xF6C4;', SoftBank:'\x1b$G#\x0f'}, 'キラキラ':{DoCoMo:'&amp;#63903;', AU:'&amp;#xF37E;', SoftBank:'\x1b$ON\x0f'}, '電球':{DoCoMo:'&amp;#63904;', AU:'&amp;#xF64E;', SoftBank:'\x1b$E/\x0f'}, '怒り':{DoCoMo:'&amp;#63905;', AU:'&amp;#xF6BE;', SoftBank:'\x1b$OT\x0f'}, 'パンチ':{DoCoMo:'&amp;#63906;', AU:'&amp;#xF6CC;', SoftBank:'\x1b$G-\x0f'}, '爆弾':{DoCoMo:'&amp;#63907;', AU:'&amp;#xF652;', SoftBank:'\x1b$O1\x0f'}, '連音符':{DoCoMo:'&amp;#63908;', AU:'&amp;#xF6DE;', SoftBank:'\x1b$OF\x0f'}, '睡眠':{DoCoMo:'&amp;#63910;', AU:'&amp;#xF64D;', SoftBank:'\x1b$E\\\x0f'}, '!':{DoCoMo:'&amp;#63911;', AU:'&amp;#xF65A;', SoftBank:'\x1b$GA\x0f'}, '汗':{DoCoMo:'&amp;#63915;', AU:'&amp;#xF7CE;', SoftBank:'\x1b$OQ\x0f'}, 'ダッシュ':{DoCoMo:'&amp;#63917;', AU:'&amp;#xF6CD;', SoftBank:'\x1b$OP\x0f'}, 'カチンコ':{DoCoMo:'&amp;#63824;', AU:'&amp;#xF697;', SoftBank:'\x1b$OD\x0f'}, '夜':{DoCoMo:'&amp;#63831;', AU:'&amp;#xF3C5;', SoftBank:'\x1b$Pk\x0f'}, 'シャツ':{DoCoMo:'&amp;#63923;', AU:'&amp;#xF7E6;', SoftBank:'\x1b$G&amp;\x0f'}, '口紅':{DoCoMo:'&amp;#63925;', AU:'&amp;#xF6E2;', SoftBank:'\x1b$O<\x0f'}, 'ベル':{DoCoMo:'&amp;#63928;', AU:'&amp;#xF6EB;', SoftBank:'\x1b$OE\x0f'}, 'ドル袋':{DoCoMo:'&amp;#63930;', AU:'&amp;#xF6A0;', SoftBank:'\x1b$EO\x0f'}, 'パソコン':{DoCoMo:'&amp;#63931;', AU:'&amp;#xF7E8;', SoftBank:'\x1b$G,\x0f'}, '王冠':{DoCoMo:'&amp;#63935;', AU:'&amp;#xF7F9;', SoftBank:'\x1b$E.\x0f'}, '指輪':{DoCoMo:'&amp;#63936;', AU:'&amp;#xF6ED;', SoftBank:'\x1b$GT\x0f'}, '自転車':{DoCoMo:'&amp;#63938;', AU:'&amp;#xF687;', SoftBank:'\x1b$EV\x0f'}, 'お茶':{DoCoMo:'&amp;#63939;', AU:'&amp;#xF382;', SoftBank:'\x1b$OX\x0f'}, '照顔':{DoCoMo:'&amp;#63942;', AU:'&amp;#xF399;', SoftBank:'\x1b$P*\x0f'}, '汗顔':{DoCoMo:'&amp;#63944;', AU:'&amp;#xF7F6;', SoftBank:'\x1b$E(\x0f'}, '小怒顔':{DoCoMo:'&amp;#63945;', AU:'&amp;#xF461;', SoftBank:'\x1b$P6\x0f'}, 'しらけ顔':{DoCoMo:'&amp;#63946;', AU:'&amp;#xF39D;', SoftBank:'\x1b$P.\x0f'}, 'ラブラブ顔':{DoCoMo:'&amp;#63947;', AU:'&amp;#xF7F4;', SoftBank:'\x1b$E&amp;\x0f'}, 'GJ':{DoCoMo:'&amp;#63948;', AU:'&amp;#xF6D2;', SoftBank:'\x1b$G.\x0f'}, 'あかんべ顔':{DoCoMo:'&amp;#63949;', AU:'&amp;#xF6C0;', SoftBank:'\x1b$E%\x0f'}, 'ウィンク顔':{DoCoMo:'&amp;#63950;', AU:'&amp;#xF7F3;', SoftBank:'\x1b$P%\x0f'}, '失敗顔':{DoCoMo:'&amp;#63952;', AU:'&amp;#xF396;', SoftBank:'\x1b$P&amp;\x0f'}, '含笑顔':{DoCoMo:'&amp;#63953;', AU:'&amp;#xF393;', SoftBank:'\x1b$P"\x0f'}, '泣顔':{DoCoMo:'&amp;#63954;', AU:'&amp;#xF64B;', SoftBank:'\x1b$P1\x0f'}, '(C)':{DoCoMo:'&amp;#63958;', AU:'&amp;#xF774;', SoftBank:'\x1b$Fn\x0f'}, 'TM':{DoCoMo:'&amp;#63959;', AU:'&amp;#xF76A;', SoftBank:'\x1b$QW\x0f'}, '走る':{DoCoMo:'&amp;#63960;', AU:'&amp;#xF643;', SoftBank:'\x1b$E5\x0f'}, 'マル秘':{DoCoMo:'&amp;#63961;', AU:'&amp;#xF6CA;', SoftBank:'\x1b$O5\x0f'}, '(R)':{DoCoMo:'&amp;#63963;', AU:'&amp;#xF775;', SoftBank:'\x1b$Fo\x0f'}, '警告':{DoCoMo:'&amp;#63964;', AU:'&amp;#xF659;', SoftBank:'\x1b$Fr\x0f'}, '空席':{DoCoMo:'&amp;#63966;', AU:'&amp;#xF35D;', SoftBank:'\x1b$FK\x0f'}, '満席':{DoCoMo:'&amp;#63968;', AU:'&amp;#xF35C;', SoftBank:'\x1b$FJ\x0f'}, '学校':{DoCoMo:'&amp;#63971;', AU:'&amp;#xF353;', SoftBank:'\x1b$Ew\x0f'}, '波':{DoCoMo:'&amp;#63972;', AU:'&amp;#xF481;', SoftBank:'\x1b$P^\x0f'}, '富士山':{DoCoMo:'&amp;#63973;', AU:'&amp;#xF7ED;', SoftBank:'\x1b$G[\x0f'}, 'クローバー':{DoCoMo:'&amp;#63974;', AU:'&amp;#xF6EC;', SoftBank:'\x1b$E0\x0f'}, 'チューリップ':{DoCoMo:'&amp;#63976;', AU:'&amp;#xF6BD;', SoftBank:'\x1b$O$\x0f'}, 'りんご':{DoCoMo:'&amp;#63978;', AU:'&amp;#xF38D;', SoftBank:'\x1b$Oe\x0f'}, 'もみじ':{DoCoMo:'&amp;#63980;', AU:'&amp;#xF6A7;', SoftBank:'\x1b$E8\x0f'}, '桜':{DoCoMo:'&amp;#63981;', AU:'&amp;#xF6A3;', SoftBank:'\x1b$GP\x0f'}, 'おにぎり':{DoCoMo:'&amp;#63982;', AU:'&amp;#xF6AE;', SoftBank:'\x1b$Ob\x0f'}, 'ケーキ':{DoCoMo:'&amp;#63983;', AU:'&amp;#xF6A9;', SoftBank:'\x1b$Gf\x0f'}, '日本酒':{DoCoMo:'&amp;#63984;', AU:'&amp;#xF36A;', SoftBank:'\x1b$O+\x0f'}, 'ラーメン':{DoCoMo:'&amp;#63985;', AU:'&amp;#xF7D1;', SoftBank:'\x1b$O`\x0f'}, 'パン':{DoCoMo:'&amp;#63986;', AU:'&amp;#xF383;', SoftBank:'\x1b$OY\x0f'}, 'ひよこ':{DoCoMo:'&amp;#63988;', AU:'&amp;#xF6B9;', SoftBank:'\x1b$QC\x0f'}, 'ペンギン':{DoCoMo:'&amp;#63989;', AU:'&amp;#xF6B5;', SoftBank:'\x1b$Gu\x0f'}, 'ウマ':{DoCoMo:'&amp;#63993;', AU:'&amp;#xF6B1;', SoftBank:'\x1b$G:\x0f'}, 'ブタ':{DoCoMo:'&amp;#63994;', AU:'&amp;#xF6B7;', SoftBank:'\x1b$E+\x0f'}, };

174個、結構な数です。

ついでにキャリア判定と変換関数も作ります。

KEITAI.DOCOMO = "DoCoMo"; KEITAI.SOFTBANK = "SoftBank"; KEITAI.AU = "AU"; KEITAI.getCarrier = function(req) { var ua = req.getHeader("User-Agent"); if (ua.match(/^DoCoMo/)) { return this.DOCOMO; } else if (ua.match(/^J-PHONE|^Vodafone|^SoftBank/)){ return this.SOFTBANK; } else if (ua.match(/^UP.Browser|^KDDI/)){ return this.AU; } return "AU"; } KEITAI.emojiPass1 = function(carrier, xhtml) { var emojis = xhtml..emoji; for each (var node in emojis) { var codes = this.EMOJI[node.text()]; if (codes != null) { node.parent().insertChildAfter(node, codes[carrier]); delete node.(true)[0]; } } return xhtml; } KEITAI.emojiPass2 = function(carrier, xhtml) { var str = xhtml.toString(); if (carrier == KEITAI.DOCOMO) { str = str.replace(/[&]amp;/g, "&"); } else if (carrier == KEITAI.SOFTBANK) { str = str.replace(/[&]#27;/g, "\x1b").replace(/[&]#15;/g, "\x0f"); } else if (carrier == KEITAI.AU) { str = str.replace(/[&]amp;/g, "&"); } return str; }

で、準備OKなので表示をするサンプルコードを書きます。

include("keitai.js"); function doGet(req, res) { var userName = __ENV__.user.name; // ログインユーザ名 var html = <html> <body> <emoji>晴</emoji> <emoji>曇</emoji> <emoji>雨</emoji> ...中略... <emoji>ペンギン</emoji> <emoji>ウマ</emoji> <emoji>ブタ</emoji> </body> </html>; var carrier = KEITAI.getCarrier(req); res.setContentType("text/html; charset=Shift_JIS"); var str = KEITAI.emojiPass2(carrier,KEITAI.emojiPass1(carrier,html)); res.writer.write(str); }

エミュレータの結果。

AU:

DoCoMo:

SoftBank:

あれ、SoftBank 壊れてる。 次回へ続く。