やっぱり文字化けは面倒の巻
Ruby on Rails で日本語文字を入力すると必ず化けて涙目になった記録。
★ 自分の場合
何度テーブルを作りなおしてもダメだったのだが、スキーマ自体を作り直したら直った。
mysql> show variables like "char%"; +--------------------------+----------------------------+ | 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/ | +--------------------------+----------------------------+
character_set_database が latin1 なのはスキーマ作成時の指定が悪かったらしい。
CREATE DATABASE `rails` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
こうすると、
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/ | +--------------------------+----------------------------+
となり、日本語を入力しても文字化けが起こらなくなった。