ターミナルとかシェルの文字コードを変更
$ sudo vi /etc/sysconfig/i18n LANG="ja_JP.UTF-8" SUPPORTED="ja_JP.UTF-8:ja_JP:ja"
ファイルの文字コードを変更
- 文字コード変換コマンドnkfの使い方まとめ linux - Knowledge Database IT
UTF-8に変更。デフォはISO-2022-JPになってる可能性がある。
$ nkf -w --overwrite index.php $ nkf -g index.php ←変更されたか確認
php.iniを変更
$ sudo vi /etc/php.ini output_buffering = Off ;default_charset = UTF-8 [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass mbstring.encoding_translation = Off ;mbstring.detect_order = UTF-8,EUC-JP,SJIS,JIS,ASCII mbstring.detect_order = UTF-8,eucJP-win,SJIS-win,JIS,ASCII mbstring.substitute_character = none; ;mbstring.func_overload = 0 ;mbstring.strict_encoding = Off
httpd.confを変更
$ sudo vi /etc/httpd/conf/httpd.conf AddLanguage ja .ja ←先頭に持ってくる LanguagePriority ja ←先頭に持ってくる #AddDefaultCharset UTF-8 ←コメントアウト
半角カナでPOST/GETデータが文字化けする場合
- tomimemo - その他メモ
PHP内部のエンコーディング自動判定がミスっているらしい。
短い入力文字だとたまにミスる。
ダミーで日本語文字が書かれたhiddenタグを入れておくといいらしい。
<form>~</form>の中に <input type="hidden" name="hidden" value="日本語判定用文字列">