人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP4での携帯絵文字変換についての質問です。
変換モジュールはここのを使っています。
http://sourceforge.jp/projects/emoji/

以前、PHP3国際版でSJISで記述していた際には、問題なく&#形式への変換などができていました。

今回サーバーの移行に伴い、PHP4のスクリプトをEUCで記述しています。
emoji.phpファイル自体も文字コードをEUCに変換しました。
これで動かすと、携帯端末から入力しても絵文字をうまく変換できません。

上記スクリプトをどのように設定して使っているのかを教えて下さい。


php.iniの設定の抜粋は下記の通りです。
---------------------------------------------
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On

●質問者: loy
●カテゴリ:ウェブ制作
✍キーワード:EUC EUC-JP ON PHP SJIS
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● iloveny
●65ポイント

●原因●

実験したところHTTP入力変換のときに文字コードがPHPによって変更されるのが問題でした。

絵文字は文字コードとしてきちんと定義されたものではないので、PHPはこの文字コードを勝手に削除したなりしたため、うまくいかなかったようです。

●解決方法●

php.ini の設定を変えます。

mbstring.encoding_translation =Off

mbstring.http_input = pass (←不要かも)

で、勝手に自動変換されることなく、うまく行きました。

php.ini の変更が嫌な場合は .htaccess でやりましょう(私はこれでテストしました)。

プログラム自体は EUC-JP ではなく SHIFT-JIS で保存して下さい。

◎質問者からの返答

回答ありがとうございます。

.htaccessでもphp.iniの設定内容を変更できるんですね。よろしかったらその説明がされているページをお教えください。

あと、プログラムはやはりEUC-JPではダメなものでしょうか?


2 ● iloveny
●65ポイント

http://www.php.net/manual/ja/configuration.changes.php

PHP: 設定を変更するには - Manual

.htaccess の変更方法のページです。

できない変数もありますが。

今、EUC-JP で試して見ましたが、うまく動いているようです。

入ってくる変数が SHIFT-JIS で変換しなければ大丈夫かも知れません。

◎質問者からの返答

.htaccessで<IfModule mod_php4.c>

php_flag output_buffering Off

php_flag magic_quotes_gpc Off

php_value default_charset Shift_JIS

php_value mbstring.language Japanese

php_value mbstring.internal_encoding SJIS

php_value mbstring.script_encoding auto

php_value mbstring.http_input auto

php_value mbstring.http_output SJIS

php_flag mbstring.encoding_translation Off

php_value mbstring.detect_order auto

php_value mbstring.substitute_character none

</IfModule>

としてやってますが、うまくいきません。。。

どなたか救いの手を、、、、

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ