MySQLの文字化けがどうしても直らないときは、my.cnfだけいじってもダメだとわかった。
Advertisements
・my.cnfでいじっても文字化けが直らない。
・INSERTすると文字が化けて見える。
・linux自体の文字コードもちゃんとutf-8にした。
どうしてもMySQLの文字化けが直らないから、念のため以下を実行してみた。
すると・・・
mysql> show variables like 'character_set%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
下記のコマンドでこれもutf8に変更!
(参考)
http://d.hatena.ne.jp/webtrap/20090922/1253580851
http://ext.omo3.com/linux/mysql_character_set.html
SET character_set_database = 'utf8';
実行したときは変わったんだけど、再起動したらまたlatin1になってしまった。
これはテーブルを作り直すしか無いのかな・・・
(たぶんmy.cnfになんか書けばいいんだけど・・・)
テーブルにデフォルトの文字コードを設定する構文
CREATE TABLE table_name [DEFAULT] CHARACTER SET 'utf8';
これでテーブルを作った後にさらにダメ押しで
SET character_set_database = 'utf8';
で、実際にINSERTしたら、やっと文字化けしなくなった!