[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 メーリングリストの案内