dポイントプレゼントキャンペーン実施中!

PHPで作成したWebサイトをブロバイダーのサーバーにアップして表示すると文字化けします。
ローカル環境では、php.iniの設定で、エンコードをUTF-8としていますが、「サーバー環境はWindowsサーバをベースとしており、WEBサーバはIIS(7.0)となるため、各サイトごとにphp.iniファイルを設定することはできない。
(サーバ内にアップロードされてもPHPから読ませることはできません。)」 とブロバイダに言われました。
どうしたらよいのでしょうか?
ちなみに、ローカル側のエンコードをjisにすれば問題ないのかもしれませんが、いまいちphp.iniの設定に自身がないのです。
今の状態は以下の通りですが、どこをどう変更すればよいのでしょうか?
よろしくお願いします。
****************************************************
default_charset = "UTF-8"       出力文字コード
mbstring.internal_encoding = UTF-8  PHP内部の文字コード
mbstring.http_input = auto       HTTP入力の文字コード
mbstring.http_output = pass      HTTP出力の文字コード
mbstring.encoding_translation = Off  HTTP入力の文字コードの自動変換
****************************************************

A 回答 (3件)

単純に、webサーバがデフォルトで送出する、Content-Typeヘッダの文字コードがUTF-8でない、とかそういうことではないですか?



以下の二点、試してみてはどうでしょう。
・コンテンツを表示擦る前に、headerタグで文字コードを指定する。
<?php header('Content-Type: text/html; charset=UTF-8')?>

・HTMLタグでmetaで指定
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
※titleタグなど日本語が出てくる前に指定する。

どうでしょう。
    • good
    • 1
この回答へのお礼

hogehoge78さん:
ご回答どうもありがとうございました。
meta指定でできました。
本当に助かりました。

お礼日時:2010/02/08 09:51

実際にスクリプトを記述したファイルの文字コードが「mbstring.internal_encoding」で指定したものと同じであるか、確認してみてください。

うっかりシフトJISで保存していた、ということはないでしょうか。

また「mbstring.encoding_translation」についてはスクリプト内で設定することは出来ないと思います。

根気強く頑張ってください。

参考URL:http://www.php.net/manual/ja/configuration.chang …
    • good
    • 0
この回答へのお礼

samchayさん:
何度もありがとうございます。
metaの設定で、とりあえず何とかなりました。
これから、もっと本格的なコーディングに入ると、さらなる難所がやってきそうですが、またよろしくお願いします。

お礼日時:2010/02/08 09:49

設定ファイルにアクセスできない場合、ご自身のスクリプト内で関連項目を設定することになります。

設定には「ini_set()」関数が利用できます。

変更可能な範囲が「PHP_INI_ALL」となっているものはスクリプト内で変更可能ですので、次のようにして設定します。

ini_set('mbstring.internal_encoding', 'UTF-8');

「default_charset」も同様に設定できますが、これは「header()」関数を用いて上書きすることも可能です。

まずはローカルの環境と同じように設定し、様子を見ては如何でしょうか。

参考URL:http://www.php.net/manual/ja/mbstring.configurat …
    • good
    • 0
この回答へのお礼

samchaysann:
ご回答、ありがとうございます。
私もini_setだと思い、以下のように設定しましたが、やはりダメでした。記述が間違っている、若しくは足りないのでしょうか?
エラーにはなりませんが、文字化けです。

<?php ini_set('default_charset','UTF-8');
ini_set('mbstring.internal_encoding','UTF-8');
ini_set('mbstring.http_input','auto');
ini_set('mbstring.http_output','pass');
ini_set('mbstring.encoding_translation','off');
print('テスト');
?>

お礼日時:2010/02/05 18:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!