【Ktai】中間報告とか今後のお知らせとか

icon_ktai思いっきり体調崩しています。
仕事のほうで少々トラブルがあり、昨日徹夜をしてしまった影響が。
以前なら1週間徹夜続きとかザラだったんですけど…もう若くないなぁ、なんて(^^;;;

というわけで、Ktai Libraryの中間報告なのですが、emoji_tableを大幅に変えたバージョンが動き始めてきました。DoCoMoはとりあえずShiftJISとUTF-8がばっちり表示できるようになりました。
問題はAUで、何故かというと端末を持っていないのです(大汗)。まあ会社で試せば(というか試してもらえば)いいのですが、Ktai Libraryは基本的に個人的なものなので他の人に頼みにくい(大汗)。シミュレータでUTF-8試せるのかな?
SoftbankはShiftJISもUTF-8も同じコードであることは確認しているので、こちらは問題なし(と思われます)。
なので、とりあえずはUTF-8化は目処がつきました。

次に問題になるのはSJIS←→UTF-8の相互変換部分なのですが、やはりコードそのものを直接変換するのは難しいです。文字化けした状態のコードをテーブル化するアイデアもあったのですが、PHPの方でルールが変わってしまったりすると困るので、いまのところは&#xxxxx;で置き換える方式が有力です。つまり、次のように変換を行います。

【SJIS→UTF-8の変換】
1 : 絵文字変換。DoCoMoとAUはSJIS→&#xxxxx;(UTF-8コード)で置き換え
2 : mb_convert_encoding()で全体をコンバート
3 : 絵文字を&#xxxxx;(UTF-8コード)→UTF-8で置き換え(DoCoMoとAUのみ)

【UTF-8→SJISの変換】

1 :絵文字変換。 DoCoMoとAUはUTF-8→&#xxxxx;(SJISコード)で置き換え
2 : mb_convert_encoding()で全体をコンバート
3 : 絵文字を&#xxxxx;(SJISコード)→SJISで置き換え(DoCoMoとAUのみ)

処理コスト削減として、3をやらないオプションも付ける予定です。

それから、これはちょっと違う話なのですが、現在仕事で携帯サイトを作っていまして、そちらの方はほぼ落ち着いたので、その時の開発話などを今後少し語っていきたいと思います。CakePHPを使っていますし、今回発表していますKtaiLibraryも、原型バージョンをこのサイトで使っています。それから忘れてはならないのはTplcutter。もちろんこの開発でも使っています(0.2.0版です)。おそらく、一般公開サイトで、外注にTplcutter向けテンプレートを作らせて、しかも携帯サイトだった開発は今回初めてだと思います。CakePHP + Tplcutter + Ktai Libraryの3セットで開発ができたので、自分でも大変に良い経験になりました。サイトのサービスインがまだなので、それが過ぎたら公開しますね。