EZweb (au) 絵文字の規則性
KDDI/AUでutf-8のHTMLフォームから送られてくる絵文字コード
これはすごい発見。
MobilePictogramConverterでau絵文字(utf8)を変換するのに、大分調査したが
規則性が見つけられなかったので、SJISバイナリコードとの、マップファイルを作った。
マップファイルより、この規則性に沿って変換してあげるほうが断然スマートだ。
って事で、近いうちにバージョンアップします。
ちなみにPHPでEZweb(au)絵文字sjis(hex)をutf8(hex)に変換するには以下のコードで可能
<?php// eebd89echo bin2hex(mb_convert_encoding(pack('H*', dechex(hexdec("F649") - 1792)), 'UTF-8', 'unicode'));?>
SoftBank絵文字を再度調査し直して見た。
はじめに、あくまで私が独自で調査した結果なので、参考程度に思っておいて下さい。
この情報が元で問題が発生しても、一切の責任は負いません。
昨日の2chの事が気になり、色々調査してみました。
とりあえず手元にある、以下の機種で試しました。
V602T 2G
703SH 3G
910SH 3G
【V602T】SJIS
Webコードで絵文字を送信。
以下の形式です。
0x1B 24 [?] [?] 0FUTF-8
バイナリコードで送信。
ここは従来通りぽい
【703SH】SJIS
絵文字は削除され送信
まぁここも期待通りUTF-8
バイナリコードで送信。
ここも従来通りぽい
【910SH】
SJIS
2バイトのバイナリコードで送信
以前にテストした時は記憶が正しければ、Webコードで送信していた覚えがあります。UTF-8
バイナリコードで送信。
ここは従来通りぽい
910SHはSJISの場合、以前ならWebコードで送信していたと思ったんだけど…
まぁ、なんにせよSJISで絵文字を扱う場合はWebコードを変換を行った後に、2バイトのバイナリコードをチェックして存在すれば変換かけてやれば問題ないかと思われます。
MobilePictogramConverterではその方法を用いたいと思います。
SoftBankの一部機種の絵文字はSJIS外字領域を使用しているらしい
以下参照
http://pc11.2ch.net/test/read.cgi/php/1168955769/
485 名前: nobodyさん 投稿日: 2007/11/12(月) 02:47:57 id:arkf2/fo
更新作業も自動化した。ところで聞きたいことがあるです。
SoftBankの絵文字の送出方法って、1B$?xx0Fですよね。基本は。
でもV905SHだけなんかShift-JISの拡張領域使ってて、挙句の果てにauやDoCoMoと文字コードかぶってるっぽいんですが、そのあたりの情報どっかにありませんか?掲示板運営してまして、投稿処理で
SoftBank判定
→2バイト絵文字から1B$?xx0Fに変換
→記録
ってことをやってるんですが、なんかうまく動作しないんです。
PCからの投稿では無事変換されまして、実機からなぜうまくいかないのかさっぱりぷー。
まじで?
と、思い調べてみました。
実機がないので何ともいえませんが、恐らく一部機種では以下の範囲を使用している可能性があるぽい。
SoftBank技術資料 HTML編 2.0.0 2006-10-01 P.211〜222参考(絵文字1)
0xF9[41-7E]
0xF9[80-9B](絵文字2)
0xF7[41-7E]
0xF7[80-9B](絵文字3)
0xF7[A1-F3](絵文字4)
0xF9[A1-ED](絵文字5)
0xFB[41-7E]
0xFB[80-8D](絵文字6)
0xFB[A1-D7]
実機で確認を取りたいと思っているのですが、
V905SH(SJIS外字領域で送ってくる端末)を持っている方がいらっしゃれば、ご協力頂けると幸いです<(_ _)>
近いうちにMobilePictogramConverterで変換がかけれるようバージョンアップします。
MobilePictogramConverter バグフィックス
3キャリア相互変換対応 絵文字変換スクリプト
以前の公開より、大幅改良しました。
機能としては以下の通り。
1. DoCoMo, au, SoftBankの絵文字を相互変換可能
2. 端末からサーバーへ送信された絵文字の変換が可能(掲示板など)
3. SJIS/UTF-8に対応
4. PCでの絵文字表示が可能(画像)
5. 絵文字画像は全て透過GIFでアニメーションに対応
6. DoCoMo隠し絵文字一部対応
7. バイナリコード, Web入力コード, imgタグからの変換が可能
8. 絵文字の削除が可能
9. UserAgentからキャリアを判別し、キャリアに合った絵文字に自動変換が可能
10. 変換オプションとして、バイナリコード, Web入力コード, 画像の指定が可能
以下からDLどうぞ。
変換マップは各キャリア変換ルールに準拠しているはずです。
バグや機能要望があればコメント下さい。
emptyの動作変わってたのか
PHP5でこんな仕様に変わってたらしい。
PHP5では、プロパティがないオブジェクトは空でないと見なされます。
PHP4では、文字列 "0"は空であると見なされます。
PHP5でのemptyの動作
次のような値は空であると考えられます。:
"" (空文字列)
0 (0 は整数)
"0" (0は文字列)
NULL
FALSE
array() (空の配列)
var $var;(変数が宣言されているが、クラスの中で値が設定されていない)
全然知らなかった。
PHP4使ってた時に、emptyが使えないもんだから自前で関数用意してチェックしてたけど
その必要がなくなりそうだなぁ。