【MySQL】 文字化け解決法 (UTF-8)
MySQL 5.0, Ubuntu 7.10 Gutsy
これだと文字化けする、ダメな例。
mysql> STATUS;
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
/etc/my.cnfを編集(apt-getでインストールした場合は/etc/mysql/my.cnf)
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
skip-character-set-client-handshake
mysql再起動
この設定は新たにデータベースを作成すると反映される。
mysql> create database mydb
すなわち、既存のデータベース、テーブルの設定は古いまま。
UTF-8にしたときの正しい例。
mysql> STATUS;
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
文字コードの設定はデータベースごとに持っているので、
mysql> use mydb
してから、STATUS, SHOW VARIABLESしたほうがよい。
Db charactersetがlatin1のままだと文字化けする。

0 件のコメント:
コメントを投稿
登録 コメントの投稿 [Atom]
この投稿へのリンク:
リンクを作成
<< ホーム