[PHP-users 27076] Re: 日本語がすべて「?」に文字化けします[解決]
Tani
t_tani_0426 @ ybb.ne.jp
2005年 10月 4日 (火) 18:24:17 JST
>tetuoさん
.htaccessを使えば、簡素にできるみたいですね。
PHPを勉強していくにつれて同時にサーバーの知識も
必要になってくることを最近実感しています。
丁寧に教えてくださいましてありがとうございました。
----------------------------------------------------------------------
Message: 1
Date: Sun, 02 Oct 2005 21:38:39 +0900
From: Tani <t_tani_0426 @ ybb.ne.jp>
Subject: [PHP-users 27037] Re: 日本語がすべて「?」に文字化けします
To: php-users @ php.gr.jp
Message-ID: <20051002213305.6FFB.T_TANI_0426 @ ybb.ne.jp>
Content-Type: text/plain; charset="ISO-2022-JP"
>あさかわさん
アドバイスをありがとうございました。
自己レスですが、
ini_set('mbstring.internal_encoding','EUC-JP');
と一行付け加えたら文字化けが直りました。
どうやらphp.iniの設定で内部文字コードの設定がされていなかった
のが原因だったようです。
すべてのスクリプトに上の行を付け加えたので、
少々面倒でしたがレンタルサーバーなのでこうするしか
解決法が分かりませんでした。
もっといい方法がありそうな気もするのですが…
------------------------------
Message: 2
Date: Sun, 02 Oct 2005 22:55:04 +0900
From: shima tetuo <mlmlml @ lily.freemail.ne.jp>
Subject: [PHP-users 27038] Re: 日本語がすべて「?」に文字化けします
To: PHP-users ML <php-users @ php.gr.jp>
Message-ID: <20051002224756.6703.MLMLML @ lily.freemail.ne.jp>
Content-Type: text/plain; charset="ISO-2022-JP"
tetuoです。
.htaccessの使用をレンタルサーバーが許可しているのなら、.htaccessで設定さ
れる方がより簡素に出来ると思います。
ソースはEUC-JPベースで、出力はShift-JISかと思いますので、.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.internal_encoding EUC-JP
php_value mbstring.http_input auto
php_value mbstring.http_output SJIS
php_value mbstring.substitute_character none
#######################################
を書いてはどうでしょう?(必要であれば環境に応じて、項目は変更して下さい)
参考:
LXVI. マルチバイト文字列関数(mbstring)
http://jp2.php.net/mbstring
例 3. SJIS ユーザ用の php.iniの 設定
;; 出力のバッファリングを有効に
output_buffering = On
;; 出力の変換を有効にするために mb_output_handler を設定
output_handler = mb_output_handler
;; HTTPヘッダ charset を設定
default_charset = Shift_JIS
;; デフォルトの言語を日本語に設定
mbstring.language = Japanese
;; HTTP 入力変換を有効にする
mbstring.encoding_translation = On
;; HTTP 入力エンコーディング変換を auto に設定
mbstring.http_input = auto
;; SJIS に変換
mbstring.http_output = SJIS
;; 内部エンコーディングを EUC-JP に設定
mbstring.internal_encoding = EUC-JP
;; 無効な文字を出力しない
mbstring.substitute_character = none
tetuo
mlmlml @ lily.freemail.ne.jp
http://mlmlml.seesaa.net/
------------------------------
PHP-users メーリングリストの案内