mysql5.5文字コード設定
/etc/my.cnfを変更
[mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 # 5.1の場合 # default-character-set=utf8
文字コード確認コマンド
全体の文字コード確認
show variables like 'character_set%';
データベースの文字コード確認
show create database db_name
mysql> show create database blog; +----------+---------------------------------------------------------------+ | Database | Create Database | +----------+---------------------------------------------------------------+ | blog | CREATE DATABASE `blog` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+---------------------------------------------------------------+ 1 row in set (0.00 sec)
文字コードを指定してデータベース作成
create database db_bname character set utf8;
my.cnfをいじれない環境ならこれで
初期状態
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 | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
設定後
mysql> show variables like 'character_set%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | 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)
トラブルシューティングガイド
- DBを疑う
- クライアントを疑う
切り分けとしては、
ターミナルで見て文字化けしないならプログラムが悪い可能性が大