メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2008年1月20日日曜日

[mod_chxj][携帯] サーバサイド絵文字変換の概念設計

やろうと思っていることは以下のとおり。

  • SJIS、EUCJP、UTF-8で書かれているCHTML/HTML文書を絵文字も含めてSJISに変換すること。
さて、やはり問題になるのは「絵文字」。下記に各々の文字コードの時にやらなきゃいけなさそうなことを列挙してみます。とりあえずはクライアントに渡す文字コードはSJISコード前提とします。libiconvを使うので環境によってはSJIS-WINや、EUCJP-WINが使えないので絵文字の変換は自力でやらなきゃならなそう。内部的には絵文字は文字コードに依存しないメタ絵文字を使用し、最終出力時にSJISに変換した方がいいかな。


サーバサイドのソースがSJISコードのとき
絵文字は2バイトの指定文字、もしくは参照文字列で指定します。
アクセスしてきた端末がDoCoMoの場合にやるべきことは、
  1. 2バイトバイナリコードの絵文字をメタ絵文字に変換。
  2. 参照文字列をメタ絵文字に変換。
  3. HTML変換。
  4. メタ絵文字を2バイトバイナリコード絵文字に変換。
だけ。
auの場合は、
  1. 2バイトのバイナリコードで記述された絵文字をメタ絵文字へ変換
  2. 参照文字列で記述された絵文字をメタ絵文字へ変換
  3. HTML変換
  4. メタ絵文字をAU用絵文字に変換。
SoftBankの場合は、
  1. 2バイトのバイナリコードで記述された絵文字をメタ絵文字へ変換
  2. 参照文字列で記述された絵文字をメタ絵文字へ変換
  3. HTML変換
  4. メタ絵文字をSoftBank用絵文字に変換
といったところか。



サーバサイドのソースがEUC-JPの場合
絵文字はEUC-JPの参照文字列で指定します。

端末がDoCoMoの場合、
  1. 参照文字列で記述された絵文字をメタ絵文字に変換
  2. ソースをSJISに変換(iconv使用)
  3. HTML変換
  4. メタ絵文字をDoCoMo用絵文字に変換
端末がAUの場合、
  1. 参照文字列で記述された絵文字をメタ絵文字に変換
  2. ソースをSJISに変換(iconv使用)
  3. HTML変換
  4. メタ絵文字をAU用絵文字に変換
端末がSoftBankの場合
  1. 参照文字列で記述された絵文字をメタ絵文字に変換
  2. ソースをSJISに変換(iconv使用)
  3. HTML変換
  4. メタ絵文字をSoftBank用絵文字に変換


サーバサイドのソースがUTF-8の場合
絵文字は2バイトバイナリコードか、参照文字列で指定します。

端末がDoCoMoの場合、
  1. 2バイトバイナリコードで記述された絵文字をメタ絵文字に変換
  2. 参照文字列で記述された絵文字をメタ絵文字に変換
  3. ソースをSJISに変換(iconv使用)
  4. HTML変換
  5. メタ絵文字をDoCoMo用絵文字に変換
端末がAUの場合、
  1. 2バイトバイナリコードで記述された絵文字をメタ絵文字に変換
  2. 参照文字列で記述された絵文字をメタ絵文字に変換
  3. ソースをSJISに変換(iconv使用)
  4. HTML変換
  5. メタ絵文字をAU用絵文字に変換
端末がSoftBankの場合
  1. 2バイトバイナリコードで記述された絵文字をメタ絵文字に変換
  2. 参照文字列で記述された絵文字をメタ絵文字に変換
  3. ソースをSJISに変換(iconv使用)
  4. HTML変換
  5. メタ絵文字をSoftBank用絵文字に変換

な感じかな。


メタ絵文字
&__chxj_EmojiDoCoMo絵文字番号

でいいや。

結局、

&chxjEmojiDoCoMo絵文字番号


な感じ。

0 コメント: