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

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

●質問者: wintarsnow
●カテゴリ:ウェブ制作
✍キーワード:echo EUC-JP MySQL name PHP
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● esseesse
●5ポイント

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

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

◎質問者からの返答

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

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

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


2 ● esseesse
●5ポイント

http://www.php.net/manual/ja/function.mb-convert-encoding.php

PHP: mb_convert_encoding - Manual

先ほどは失礼しました。

mb_convert_encodingですね。

◎質問者からの返答

ありがとうございます。


3 ● ezslalom
●10ポイント

http://www.spencernetwork.org/

PHP SAMPLES & TIPS

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

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

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

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

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

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

◎質問者からの返答

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

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

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

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

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

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


4 ● english
●60ポイント

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実践活用術

◎質問者からの返答

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

.htaccessは利用可能です。

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

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

関連質問


●質問をもっと探す●



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