[PHP-users 10837] Re: ドコモとJ-PHONE の絵文字について

BosProject T.Takeuchi php-users@php.gr.jp
Tue, 15 Oct 2002 18:14:40 +0900


竹内です。久しぶりの投稿になりますが、携帯絵文字の話題なので
出てきました。

Date Tue, 15 Oct 2002 17:38:13 +0900
Tatsuya Kondo <konet@zc.wakwak.com> wrote:

> 私がやりたい事は、
> Jskyユーザーが絵文字を含む文字を掲示板に書き込みし、
> それを、i-modeユーザーが見たらJskyの絵文字をi-modeの
> 絵文字に変換して表示する。
> って感じなんですけど、何か関係ありますでしょうか?
> 
> 私が思う限りでは、文字化け対策のみの
> 処理であるとしか思えません。

 全部書いてしまうわけにはいかないのでヒントだけでも
書いておきます。

 例えばi-modeの絵文字で メール をj-sky用の メール に
変換しようと思う場合には次のようになります。
(j-skyでメールを表している絵文字は4種類ほどありますので
そのうちの1つをここで挙げています)

$i_emoji = pack("c*",0xf9,0x77);          // i-modeの絵文字「メール」
$j_emoji = pack(("c*",0x1b,0x24,0x45,0x21,0x0d);  // j-skyの絵文字「メール」

$str = "変換を行いたい文字列";

 これをあとは

$str = eregi_replace($i_emoji,$j_emoji,$str);

 とすれば、本来i-modeの絵文字「メール」であった文字部分が
j-skyの絵文字「メール」に変換されます。

 仕組みとしては、これだけのことなのですが、あとはそれぞれの
キャリア毎に絵文字(バイナリ)1つずつを格納した配列を用意して
置換を行うという感じでしょうか。

$i_emoji_array[110] = pack("c*",0xf9,0x77);
$i2j_array[110]     = pack(("c*",0x1b,0x24,0x45,0x21,0x0d);

 i-modeの「メール」に限った話をすれば、上記のようになります。
$i_emoji_arrayには本来の絵文字を1文字ずつ格納。$i2j_arrayには
$i_emoji_arrayに格納されている順番と同様にjskyの絵文字を1文字
ずつ格納しておくということですね。

 私はi-mode <-> jsky <-> ez <-> pcと全てのキャリアに対応する
自作関数を作って対応しています。

 絵文字の対応マッピング表を作ることを考えると根気のいる作業になります。
頑張ってみて下さい。

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
合資会社ボスプロジェクト
竹内 輝明 webmaster@bos-project.com
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*