php.iniファイルのマルチバイト設定について①default_charset

URLエンコード(urlencode関数)でエンコードしたものを、デコードしてもどうしても文字化けする。

色々調べた結果、「php.iniファイルが悪さをして」との記述からphp.iniファイルを見直す。

default_charset

default_charsetはデフォルトの文字コードのことではないらしい。

「出力時にHTTPヘッダとして送信する文字コード名」

とのこと。

現在使用中のCPIサーバーには以下の記述があった。

; PHP’s built-in default is text/html
default_mimetype = “text/html”
;default_charset = “iso-8859-1″

この記述を変更することによるhttpヘッダーの値の変化を確認。

1.default_mimetype = “text/html”のみ。(上記の状態。)

結果:Content-Type: text/html

2.default_charset = “UTF-8″(default_charsetのコメントをはずし、UTF-8を指定。)

結果:Content-Type: text/html; charset=UTF-8

3.default_mimetype及びdefault_charset両方コメントアウト。

結果:Content-Typeは出力されず

参考
HPのマルチバイト環境と文字化けに関する問題のまとめ

コメントを残す