2013年05月26日

MySQL で EUC-JP と UTF-8 の共存

前から使っている MySQL ですが、デフォルトの文字コードは EUC-JP になっています。

mysql>  show variables like 'character_set%';
+--------------------------+-----------------------------------------------+
| Variable_name            | Value                                         |
+--------------------------+-----------------------------------------------+
| character_set_client     | ujis                                          |
| character_set_connection | ujis                                          |
| character_set_database   | ujis                                          |
| character_set_filesystem | binary                                        |
| character_set_results    | ujis                                          |
| character_set_server     | ujis                                          |
| character_set_system     | utf8                                          |
| character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+-----------------------------------------------+
この状態で UTF-8 の database を作りたいと思ったときに色々と面倒だったのでそのメモ。
database 自体は、database を作成する時に DEFAULT CHARACTER SET を指定すればよいだけでした。
CREATE DATABASE hoge DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
な感じ。
MySQL クライアントを使って上記で作った hoge を使う場合は --default-character-set=utf8 を指定。
$ mysql --default-character-set=utf8 -u user -p hoge
PHP から使う場合は、SET NAMES utf8 COLLATE utf8_general_ci という SQL を PHP から叩くというのが定石でしたが、現在は推奨されていないようです。
mysql_set_charset('utf8') を使うのが良いという話がありましたが、これも PHP5.5.0で非推奨になったらしいです。
詳しくは mysql_set_charset で。
推奨通りにやろうとするとなかなか面倒ではあります。
ラベル:MySQL
posted by おちエン at 20:50| Comment(0) | 開発 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。