[PHP-users 5446] i-mode絵文字の扱いについて

Go Hamamura php-users@php.gr.jp
Fri, 15 Feb 2002 20:22:49 +0900


はじめまして。浜村と申します。

現在、i-modeの絵文字の文字化けで困っています。

まず、環境は以下の通りです。

PHP Version 4.1.0
--enable-mbstring
mbstring.detect_order         : SJIS
mbstring.http_input           : SJIS
mbstring.http_output          : SJIS
mbstring.internal_encoding    : EUC-JP
mbstring.substitute_character : no value
Apache Version                : Apache/1.3.22
System                        : SunOS ****** 5.8 
                                Generic sun4u sparc SUNW,Ultra-5_10


internal_encodingをEUC-JPにしているので、テキストボックスなどからの入力
は最初に全てmb_convert_encodingでEUCに変換しているのですが、これだと絵文
字を扱えません。
そこで、まず[PHP-users 1467]を参考に絵文字を &#10進コード; 形式に変換す
るようにしました。
ただ、その変換した文字列($strに"あいうえお撚"という内容で入ってい
るとします)を、

<FORM ACTION='view.php' METHOD='post'>
<INPUT TYPE="hidden" NAME="str" VALUE="<?php print $str ?>">
<INPUT TYPE='submit' VALUE='次へ'>
</FORM>

と出力し、以下のスクリプト

<?php
$str = $_REQUEST["str"];
$str = mb_convert_encoding($str, "EUC-JP", "SJIS");
?>
<HTML><HEAD><TITLE>title</TITLE></HEAD><BODY>
<?php print $str ?><BR>
</BODY>
</HTML>

で受け取ると、スクリプトからの出力が、

ェ「ェ、ェヲェィェェ賁
(↑実際は半角カナ)

と文字化けしてしまいます。

あいうえお&#63889;

となるつもりでいたのですが...


どなたか、文字化けしない絵文字の扱い方をご存知ないでしょうか?

--
  浜村 剛 <hamamura@mvb.biglobe.ne.jp>