php.iniの設定では、内部文字コードがEUC-JP、出力文字コードがSJISになっています。
レンタルサーバなのでphp.iniの設定は変えられません。
それで、出力文字コードをEUC-JPにしたいのですが、方法がありましたら教えて下さい。
PHPのバージョンは4.3.8です。
MySQLから取り出して、例えば
echo $data[’name’];
などとすると、EUC-JPで表示されるのですが、
echo ”お名前”;
や、
$name=”お名前”;
echo ”$name”;
などとして表示させた日本語はSJISになってしまいます。charsetをEUC-JPにしているので、そこだけ化けます。
PHPスクリプト内に、
ini_set(”mbstring.http_output”,”EUC-JP”);
とか、
mb_http_output(”EUC-JP”);
と入れたりもしたのですが、結果は変わりません。
http://www.php.net/manual/ja/function.mb-convert-encoding.php
PHP: mb_convert_encoding - Manual
先ほどは失礼しました。
mb_convert_encodingですね。
ありがとうございます。
http://www.spencernetwork.org/
PHP SAMPLES & TIPS
ローカルに置いているPHPファイル自体を、EUCで保存すればよいと思います
あと、転送する際に漢字変換しないようにすると、表示できます
どうしても無理であれば、変数中の文字列を EUC に変換して出力しなければいけませんが、
mb で始まる命令はサーバがマルチバイト対応で構築されていないと使えません
その代わりに jcode.php というのがあるので、ダウンロードして
ソ−スファイル中に require するとよいでしょう
回答ありがとうございます。
PHPファイルはEUCで保存しています。
転送時の漢字変換も無しで設定しております。
PHPの外(の外)にある日本語はEUC-JPで表示されるのです。
>mb で始まる命令はサーバがマルチバイト対応で構築されていないと
サーバの説明では「PHPにマルチバイトのモジュールは組み込まれています」となっているのですが、これは対応されているということですよね。
http://www.akira.ne.jp/support/start.htm#7
レンタルサーバー Webサーバのご利用方法
.htaccessが利用可能であれば、.htaccessを下記のように設定することで、文字化けを解消できませんか?
php_flag output_buffering On
php_value output_handler mb_output_handler
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.substitute_character none
.htaccess実践活用術
回答ありがとうございます。
.htaccessは利用可能です。
回答の方でやってみたらダメだったのですが、参考URLのEUC-JPの場合の方でやってみたら出来ました!
ありがとうございました!
回答ありがとうございます。
mb_convert_encodingは、日本語出力するたびに使っていたのでは大変なので、それ以外の方法でお願いします。
でも試しに一部使ってみたのですが、上手く変換されませんでした。