[PHP-users 31578] Re: HTMLは化けないのにPHPは化ける

Tomoyuki Asakawa tom @ asakawa.ne.jp
2007年 2月 27日 (火) 16:09:28 JST


あさかわです。

On 2007/02/27, at 15:50, Paul Takenaka wrote:

> それを削除したところ、シフトJISもEUC-JPも 
> UTF-8も正常に表示されるようになりました。
>
> 最終的な php.ini の内容は、
> default_charset = no value
> mbstring.encoding_translation = Off
> mbstring.http_input = pass
> mbstring.http_output = pass
> mbstring.internal_encoding = EUC-JP
> mbstring.language = Japanese
> となっています。

この設定で、シフトJISや、UTF-8は、たまたまうまく言っ 
てるだけです。

outputが、passなので
internal_encodingからの変換が起きない
ので、入れたままのコードで出力されてるだけです。

上記の設定では、ソースは、EUC-JPで、かかなくては、なりませ 
ん。

ソースをシフトJISや、UTF-8で書くのなら
mbstring.internal_encodingは、それにあわせるのが、基本です。
ただし、シフトjISを、internal_encodingにするべきでは 
ないので
シフトJISで、ソースを書くのなら
mbstring.script_encoding      = Shift_JIS
mbstring.encoding_translation = ON
を追加するべきです。
この場合、シフトJISのソースが、EUC_JPに変換されて動 
作しますので
mbstring.http_output = passだと
出力は、EUC_JPになります。
そーすにあわせたい場合は
mbstring.http_output = Shift_JIS
に、してください。










PHP-users メーリングリストの案内