[PHP-users 1467] Re: 絵文字の処理について

BosProject T.Takeuchi php-users@php.gr.jp
Fri, 24 Aug 2001 06:07:18 +0900


竹内です。

> i18n.http_output  = SJIS
> i18n.internal_encoding = EUC-JP

 私のサーバーで試してみたのですが、どうも内部エンコードを
php3.iniでEUCに指定していると上手くいかないようで、内部
エンコードを指定しなければ下記のコードでエスケープさせる
ことができました。

/*
//  i-mode絵文字対策
//  $str   絵文字チェック該当文字列。文字コードはS-JISとする
//  $mode  絵文字を10進数表記(例:)する場合はTRUE、
//         削除してしまう場合はFALSE
//  戻り値の文字コードはS-JISのままである
*/

function i_mode_convert($str,$mode){
    $converted = '';
    $str_array = unpack("C*",$str);

    for($i = 1;$i <= (count($str_array));$i++){
        if(0xf8 == $str_array[$i] || $str_array[$i] == 0xf9){
            if($mode){
                $j = $i + 1;
                $hex =  dechex($str_array[$i]) . dechex($str_array[$j]);
                $converted .= '&#' . hexdec($hex) . ';';
            }
            $i++;
        }
        else{
             $converted .= pack("C",$str_array[$i]);
        }
    }

    return $converted;
}

 もし良かったら試してみて下さい。

*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
合資会社ボスプロジェクト
竹内 輝明 webmaster@bos-project.com

〒606-0066
京都市左京区上高野水車町1
TEL 075-707-9465 FAX 075-707-9466
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
----- Original Message -----
From: "Hisatoshi Yamazaki" <1211735101@jcom.home.ne.jp>
To: <php-users@php.gr.jp>
Sent: Thursday, August 23, 2001 8:48 PM
Subject: [PHP-users 1460] 絵文字の処理について


> 山崎です。
>
> 現在、携帯向けのウェブサイトの開発を行っているのですが、
>
> i-modeの絵文字を含んだ文字列を 携帯 → Webサーバ → オラクル
>
> というようにDBに入れると文字化けしてしまいます。
>
> 文字化けせずに、データを格納&表示を行いたいのですが、
>
> どのようにすれば文字化けを回避できますでしょうか?
>
> 当方の環境は・・
>
> php-3.0.18-i18n-ja-2.
> apache1.3.20
> Oracle8.1.6 WGS (キャラクタセットは JA16EUC)
>
> php3.ini の設定は・・
>
> i18n.http_output  = SJIS
> i18n.internal_encoding = EUC-JP
> i18n.script.encoding = EUC-JP
> i18n.http_input = AUTO
> i18n.http_input_defalut = SJIS
>
> WEBサーバ → DBサーバ へのデータの受け渡しですが、
> WEBサーバでは何のデータの加工もせず、そのまま
> オラクルのストアドプロシージャにデータを渡して、INSERTしています。
>
> みなさんは、絵文字の処理はどのように行っておりますでしょうか?
>
> よろしくお願い致します。
>
> /* 山崎 桐歳 */
> /* 1211735101@jcom.home.ne.jp */
>
>
> _______________________________________________
> PHP-users mailing list
> PHP-users@php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>