
初めて質問させて頂きます。宜しくお願い致します。
只今携帯サイトを趣味で開発してるのですが、以下の所で
詰まってしまっています。
[環境]
開発文字コードUTF-8(SBのG3も対応したい為)
保存DB MySql EUCJP
フォームから入力された値をDBに保存して、再度読み出したいのですが、
$buf = pack('H*', 'ef82b2'); // AU 絵文字 (ハート)
print "ef82b2 -> " . $buf //実機で見た時に絵文字が表示されます
$buf = mb_convert_encoding($buf,"eucJP-win","UTF-8");
print "euc -> " . bin2hex($buf) //ここで見ると0x3Fになります
$buf = mb_convert_encoding($buf ,"UTF-8","eucJP-win");
print "utf8 -> " . bin2hex($buf)//ここで見ると0x3Fになります
上記のようにeucJP-winに変換した時点でコードがおかしくなっています。
※DoCoMoの絵文字'ee****'の場合は正常に変換が出来ます。
これはAU絵文字の場合はeucJP-winの文字コード領域?の範囲を超えてるとかそういうことでしょうか?ネットで探して見たのですが、見つかりませんでした。
どうかご教授下さいますようお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
基本的に携帯用の絵文字は、EUC-JPやUTF-8で他の文字が存在しない領域を使用していると思います。
EF82B2がAUの絵文字と言うことは知りませんでしたが、EUC-JPには該当する文字は無いと思います。
通常、日本語には存在しない文字だと思うのです。
つまり
>これはAU絵文字の場合はeucJP-winの文字コード領域?の範囲を超えてるとかそういうことでしょうか
こういうことですね。
Docomoの絵文字が元に戻るのはたまたまだと思います。
私も絵文字のコンバータを作ったことがありますが、絵文字を取得した時点で特殊な記号に変換して保存する方法を取りました。
他のサービスを見ても、大体どのサービスでも絵文字のデータベースを用意していて、それぞれ特殊な記号に変換して保存しています。
http://c.peps.jp/pc/emoji_code.php?mode=2
ここはとあるサービスの絵文字変換です。
ここは記号ではなくそのまま日本語として保存しているようですね。
[晴れ]と保存されていれば、携帯で見た場合は各キャリアで用意されている太陽の絵文字を、PCで見た時は画像として出力するような仕組みになっていると思います。
/([\xEB-\xED][\x40-\xFC])|(\xEE[\x40-\x8D])/
AUの絵文字のページであるUnicode表を見る限りでは、こんな範囲になっていると思います。
これで取得したデータをbin2hexするなどして、該当するテーブルから予め用意してある記号に変換するのが一般的じゃないかな?と思います。
また、以下のページで配布されている物があるようです。
http://surf-style.us/
ちょっと詳しくは見てないですが、使えそうな気がします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SplFileObject を利用したとき...
-
phpの問い合わせフォームを作っ...
-
PHPSpreadsheetによる書き出し...
-
EC-CUBEをeclipseからコンパイ...
-
php エラー
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
php エラー
-
phpinfo で MySQL のバージョン...
-
コメント機能に返信欄を矢印で...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カンマの含まれる文字列の数値...
-
VB6.0 Base64のデコード方法を...
-
ホームページ作成の初心者です
-
VB6 機種依存文字の変換
-
fgetws関数で読み込んだUNICODE...
-
携帯サイトで販売されている絵...
-
大小文字混合させて削除したい
-
i-mode、ez-web、ボーダフォン...
-
数値をASCII文字にする方法につ...
-
1バイト文字の上位4ビット・...
-
エディットコントロールへのUni...
-
VBA ASC関数で変換できない文...
-
マクロで半角を全角に
-
文字列と文字
-
ヌル文字とは一体何でしょうか
-
携帯電話の絵文字対応の掲示板...
-
16進数の文字列をアスキーコー...
-
機種依存文字
-
PHPでMysqlに絵文字を入力する...
-
format関数についてです。
おすすめ情報