EmojiTrans -- Emoji Translator
use EmojiTrans; EmojiTrans::translate( \$str, $ENV{HTTP_USER_AGENT} );
第1引数で、変換対象文字列へのリファレンスを指定します。 絵文字は予め &#xHHHH; 表記にしておく必要があります。 EmojiTrans.pm モジュール単体ではバイナリ形式の絵文字は処理できませんので、 予め EscapeSJIS.pm モジュールの escape 関数などを利用して バイナリコードを &#xHHHH; 表記に変換しておく必要があります。 なおドコモ絵文字については、&#ddddd;(Shift_JISの10表記)も利用できます。 文字コードは EUC-JP、Shift_JIS、UTF-8 が利用可能です。(指定不要)
第2引数で、変換先のブラウザ名を指定します。 各キャリアごとに下記のような変換処理となります。
ドコモ標準絵文字機種 - 拡張絵文字は似た標準絵文字に差し替えます Vodafone絵文字・EZweb絵文字は利用できません
ドコモ拡張絵文字機種 - 全てのドコモ絵文字(標準+拡張)を利用できます Vodafone絵文字・EZweb絵文字は利用できません
Vodafone非パケット機種 - Vodafone絵文字のページ1〜3を利用できます ドコモ絵文字は似たVodafone絵文字に差し替えます
Vodafoneパケット機種 - 全てのVodafone絵文字(ページ1〜6)を利用できます ドコモ絵文字は似たVodafone絵文字に差し替えます
EZweb HDML機種 - ドコモ標準絵文字を &#ddddd; 形式で出力します ドコモ拡張絵文字は利用できません
EZweb XHTML機種 - 全ての EZweb 絵文字を利用できます ドコモ絵文字は似たVodafone絵文字に差し替えます
EmojiTransMap.txt
EmojiTransMap.txt は、ドコモ⇒他キャリアの絵文字変換マップです。 EmojiTrans.pm ファイルと同じディレクトリに設置してください。 絵文字コードは3キャリアとも全て Unicode で指定されています。 (ただし Vodafone 絵文字コードは F001〜F53A に移動しています) 絵文字変換を追加・変更する場合は、EmojiTransMap.txt を更新してください。
その他の気づいたこと・雑多なメモを書いておきます。
EZweb の UP.Browser/6.0.x の XHTML 機種では、 EZweb 絵文字の &#xHHHH; 表記や Shift_JIS バイナリコードは受け付けられません。 iモード絵文字の Shift_JIS バイナリコードは (恐らくEZweb GWセンタで変換されて)正常に表示できるので、 これらの機種では、ドコモ絵文字→EZwebネイティブ絵文字の 変換は実施しない方が安全です。
それ以降の UP.Browser/6.2.x の XHTML 機種では、 EZweb 絵文字の Shift_JIS バイナリコードも受け付けられます。 (相変わらず &#xHHHH; 表記は受け付けられません) より確実には、<img localsrc=``**''> のタグを利用すれば EZweb のどの XHTML 機種でも表示できますが、 ドコモ・ボーダフォンとの互換性が確保できませんね。
UP.Browser/3.04 … HDML機種 UP.Browser/6.0.x … XHTML旧機種 UP.Browser/6.1.0 … Google CHTML Proxy/1.0 UP.Browser/6.2.0 … XHTML新機種
Copyright 2004-2005 Kawasaki Yusuke <u-suke [at] kawa.net> http://www.kawa.net/