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は出力されず