PHPの文字コードについての質問です。

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”);
と入れたりもしたのですが、結果は変わりません。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:esseesse No.1

回答回数192ベストアンサー獲得回数0

ポイント5pt

mb_convert_encodingを利用されてはいかがでしょうか。

環境によっては使えない場合もあるので、注意が必要ですが。

id:wintarsnow

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

mb_convert_encodingは、日本語出力するたびに使っていたのでは大変なので、それ以外の方法でお願いします。

でも試しに一部使ってみたのですが、上手く変換されませんでした。

2004/09/26 13:13:54
id:esseesse No.2

回答回数192ベストアンサー獲得回数0

ポイント5pt

先ほどは失礼しました。

mb_convert_encodingですね。

id:wintarsnow

ありがとうございます。

2004/09/26 13:15:45
id:ezslalom No.3

回答回数12ベストアンサー獲得回数0

ポイント10pt

ローカルに置いているPHPファイル自体を、EUCで保存すればよいと思います

あと、転送する際に漢字変換しないようにすると、表示できます

どうしても無理であれば、変数中の文字列を EUC に変換して出力しなければいけませんが、

mb で始まる命令はサーバがマルチバイト対応で構築されていないと使えません

その代わりに jcode.php というのがあるので、ダウンロードして

ソ−スファイル中に require するとよいでしょう

id:wintarsnow

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

PHPファイルはEUCで保存しています。

転送時の漢字変換も無しで設定しております。

PHPの外(の外)にある日本語はEUC-JPで表示されるのです。

>mb で始まる命令はサーバがマルチバイト対応で構築されていないと

サーバの説明では「PHPにマルチバイトのモジュールは組み込まれています」となっているのですが、これは対応されているということですよね。

2004/09/26 13:32:02
id:english No.4

回答回数304ベストアンサー獲得回数0

ポイント60pt

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

http://www.shtml.jp/htaccess/

.htaccess実践活用術

id:wintarsnow

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

.htaccessは利用可能です。

回答の方でやってみたらダメだったのですが、参考URLのEUC-JPの場合の方でやってみたら出来ました!

ありがとうございました!

2004/09/26 14:33:04

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • 問い合わせページ1 共有レンタルサーバーのphp.iniの設定のせいで 文字化け これの直し方にかれこれ数時間 参考にさせてもらいました まだ完成せず 明日はやっとセキュリティ対策にも手を
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません