PHP - phpの文字化けとphp.iniの設定

phpの文字化けとphp.iniの設定メモです。

対象OS、バージョン

  • php.4.3.x

phpの文字化けとphp.iniの設定

ファイルのエンコーディング(phpスクリプトの文字コード)と出力エンコーディングの違い
による、php.iniの設定例です。

Linuxの場合


ファイルエンコーディング(phpスクリプトの文字コード)がEUC_JPの場合

OutputEncoding php.ini
SJIS
output_buffering              = On
output_handler                = mb_output_handler
magic_quotes_gpc              = Off
default_charset               = Shift_JIS
[mbstring]
mbstring.language             = Japanese
mbstring.internal_encoding    = EUC-JP
mbstring.http_input           = auto
mbstring.http_output          = SJIS
mbstring.encoding_translation = On
mbstring.detect_order         = auto
mbstring.substitute_character = none
EUC_JP
output_buffering              = Off
magic_quotes_gpc              = Off
default_charset               = EUC-JP
[mbstring]
mbstring.language             = Japanese
mbstring.internal_encoding    = EUC-JP
mbstring.http_input           = auto
mbstring.http_output          = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order         = auto
mbstring.substitute_character = none

ファイルエンコーディング(phpスクリプトの文字コード)がSJISの場合

OutputEncoding php.ini
SJIS
output_buffering              = Off
magic_quotes_gpc              = Off
default_charset               = Shift_JIS
[mbstring]
mbstring.language             = Japanese
mbstring.internal_encoding    = SJIS
mbstring.http_input           = auto
mbstring.http_output          = SJIS
mbstring.encoding_translation = On
mbstring.detect_order         = auto
mbstring.substitute_character = none
EUC_JP
output_buffering              = On
output_handler                = mb_output_handler
magic_quotes_gpc              = Off
default_charset               = EUC-JP
[mbstring]
mbstring.language             = Japanese
mbstring.internal_encoding    = SJIS
mbstring.http_input           = auto
mbstring.http_output          = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order         = auto
mbstring.substitute_character = none

windowsの場合

WindowsにPHPを入れた事がないので何とも言えないが・・・。
とりあえず設定例だけでも・・・。
(そのうち、Winに入れた後検証してみます)

ファイルエンコーディング(phpスクリプトの文字コード)がEUC_JPの場合

OutputEncoding php.ini
SJIS
output_buffering              = On
output_handler                = mb_output_handler
magic_quotes_gpc              = Off
default_charset               = Shift_JIS
extension_dir                 = C:/php/extensions
extension                     = php_mbstring.dll
mbstring.language             = Japanese
mbstring.internal_encoding    = EUC-JP
mbstring.http_input           = auto
mbstring.http_output          = SJIS
mbstring.encoding_translation = On
mbstring.detect_order         = auto
mbstring.substitute_character = none
EUC_JP
output_buffering              = Off
magic_quotes_gpc              = Off
default_charset               = EUC-JP
extension_dir                 = C:/php/extensions
extension                     = php_mbstring.dll
mbstring.language             = Japanese
mbstring.internal_encoding    = EUC-JP
mbstring.http_input           = auto
mbstring.http_output          = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order         = auto
mbstring.substitute_character = none

ファイルエンコーディング(phpスクリプトの文字コード)がSJISの場合

OutputEncoding php.ini
SJIS
output_buffering              = Off
magic_quotes_gpc              = Off
default_charset               = Shift_JIS
extension_dir                 = C:/php/extensions
extension                     = php_mbstring.dll
mbstring.language             = Japanese
mbstring.internal_encoding    = SJIS
mbstring.http_input           = auto
mbstring.http_output          = SJIS
mbstring.encoding_translation = On
mbstring.detect_order         = auto
mbstring.substitute_character = none
EUC_JP
output_buffering              = On
output_handler                = mb_output_handler
magic_quotes_gpc              = Off
default_charset               = EUC-JP
extension_dir                 = C:/php/extensions
extension                     = php_mbstring.dll
mbstring.language             = Japanese
mbstring.internal_encoding    = SJIS
mbstring.http_input           = auto
mbstring.http_output          = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order         = auto
mbstring.substitute_character = none