PHPで高崎などを旧漢字で入力した場合
文字化けをしてしまいます。
PHPのバージョンは4.3.11でphp.iniの
mbstring.internal_encoding はコメントアウトしています。
なるべくならphp.iniの設定は変えずに
文字化けを修正したいのですが
どうしたらいいのでしょうか???
ini_setを使いましょう。
文字化けするのはフォームからの入力ですか?
PHPファイルに書かれている文字ですか?
DBからの出力ですか?
http://ns1.php.gr.jp/pipermail/php-users/2001-November/003373.ht...
[PHP-users 3365] mbstring��������.htaccess���ѹ������Ȥ��ε�����ˡ�ˤĤ���
php.iniで設定するものの中で、.htaccessで以下のように値を設定することが出来ます。
php_value [PHPディレクティブ名] [value]
php_flag [PHPディレクティブ名] [On|Off]
php_admin_value [PHPディレクティブ名] [value]
php_admin_flag [PHPディレクティブ名] [On|Off]
これだと、全体に影響することはなく設定値を変更できるかと思います。
php_value default_charset Shift_JIS
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
#php_value mbstring.internal_encoding EUC-JP
php_value mbstring.internal_encoding SJIS
php_value mbstring.substitute_character none
と書いて見ましたけど文字化けします。
ちなみにPHPファイルはSJISです。
どうしたらいいでしょうか?
http://php.s3.to/man/ref.mbstring.html#ini.mbstring.http-output
マルチバイト文字列関数(mbstring)
これで試してみてください。
ini_set(’mbstring.language’,’japanese’);
ini_set(’mbstring.http_input’,’auto’);
ini_set(’mbstring.detect_order’,’SJIS,UTF-8,EUC-JP,ASCII,JIS’);
//下は実際の出力(charset)に合わせてください。
ini_set(’mbstring.http_output’,’SJIS’);
php.iniにすでに値が設定されていれば必要ありません。
あと、phpがmb_stringをサポートしてなければ意味がありません。
phpinfo()関数でご確認を
.htaccessで出来ました。ありがとうございます。
フォームからの入力で、ポストで受け取って
変数名に格納してその変数名を出力する時に
文字化けが発生します。