がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

携帯の絵文字をまじめにいらってみた

まぁ携帯で絵文字は鬼門だけど基本なので(なんかうまいこと言ってみたつもりw)。
ちとまじめに分析してみました。


まずはキャリアさんが出している資料から。
http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/basic/
http://www.au.kddi.com/ezfactory/tec/spec/3.html
http://www.au.kddi.com/ezfactory/tec/spec/pdf/typeC.pdf
http://www.au.kddi.com/ezfactory/tec/spec/pdf/typeD.pdf
http://developers.softbankmobile.co.jp/dp/tool_dl/web/picword_top.php
なんていうか良い感じでバランバランなので大変 orz


で…ぶっちゃけ、ここの情報をみてふとひらめきました。
http://trialgoods.com/emoji/?career=i&page=all
http://trialgoods.com/emoji/?career=au&page=all
http://trialgoods.com/emoji/?career=sb&page=all
多分。数的に、auをベースにするとよさげです。


まず。こんなCSVを用意したとしますっていうか多分ここがキモ。
CSVに必要なタプル群は以下の通り。
・共通絵文字番号:独自のもの
docomo絵文字番号:あんまり意味無し
docomo絵文字タイトル:やぱりあんまり意味無し
docomo webコード(SJIS)
docomo UNICODE
docomo POST・GET時のUTF-8コード
AU絵文字番号:あんまり意味無し…だと思うけどここは重要かも。<img localsrc="絵文字番号">で使うから
AU絵文字タイトル:あんまり意味無し
AU webコード(SJIS)
AU UNICODE
SoftBank絵文字番号:…公式サイトには番号がないような orz
SoftBank絵文字タイトル:あんまり意味無し
SoftBank webコード(SJIS)
SoftBank UNICODE
キャリア間絵文字対応が「気にくわない」時とかは、ここを修正するイメージ。


で、以下、ちと設計の外骨格をざくりと。
まず「キャリアで処理を振り分ける」です。ふぁくとりぃとか便利だよねぇ。
次に、キャリア事にエンコード処理。具体的には「絵文字のバイナリだのHTML表記だのを、全部「共通絵文字番号」を含む特殊表記に置き換えます。
多分、MW的には単純に[emoji:共通絵文字番号]とかにするんじゃないかなぁ。もうちょっと複雑にしてもいいかな?
厳密にはアタックとか(多分しても意味薄い)「[絵文字:番号]という文字列そのものを出力したいときの表記法」とかあるんだろうけど、一端考察外。多分「prefixとsuffixをある程度複雑なモノにする」とか「ごめん空白一ついれて回避してw」とかで片付ける。
で、エンコードされた情報をDBなりファイルなりに格納。


ここで一区切り。


エンコードされた絵文字情報(テンプレートなら直接書いてもいいよねぇ)を基準に
・user-agent情報に従って、エンコードされた絵文字情報をてけとうにバイナリなりなんなりに変換する処理をviewあたりにぶち込む
で完了。


多分、この処理切りで概ねいけるんじゃなかろうか、と。
あとは、処理コストを考えて。厳密には
CSVは一回toolプログラムをかまして「変換用ファイル群」でばらんばらんに分解しておく
と色々便利かなぁと。


…っていうルーチンが。
世に現存してれば借りたいし、なければ…MWとして作るかなぁ。


というわけで「誰か似たようなロジック知ってたら教えてください」(笑