DBから引っ張ってきた値が文字化ける!!
開発で使っていたソースを、いざ本番サーバーにアップ!!
という作業をしていたら何故か文字化けする!
ソースは変えていない…開発と本番差異はなんだろうと。
もうDBかな?と
で、文字だから文字コードの確認
mysql> show variables like 'char%';
開発 | 本番 | |
---|---|---|
character_set_database | latin1 | utf-8 |
character_set_server | latin1 | utf-8 |
「コーコダー!ナオセー!!」
ということで、これが原因です。
これを変更するには、my.cnfを編集します。
だので、my.cnfの場所を探しましょう。
> mysql --help | grep my.cnf > /etc/my.cnf /etc/mysql/my.cnf
という感じで、my.cnfを読み込む順番が表示されます。
この読み込み順で読み込まれますので、前にあるのは後ろにあるmy.cnfで上書きされていきます。
ご注意ください。
で、それをどうするか。
- その順でファイルを探して開いてください。
- 今回は本番を開発に合わせるので latin1にします。
(普通ならutf8に合わせたほうがいいと思います。)
[mysqld] character_set_server = latin1
3. character_set_serverを変更すると、character_set_databaseも変更されています。
これで、my.cnfを閉じて、mysqlをリスタートしてください。
mysql> show variables like 'char%';
をして期待通りになっていることを確認。
文字化けが直りました。
以上。
なんか、何度もコレに突っかかってる気がする…。