続き。
文字化け編
こんな編作りたくなかった…。
①DBの文字化けを何とかする
とりあえずデータを表示してみようと思ったら文字化けした。
A5で2バイト文字を入れて、テーブルを開きなおすとすでにおかしい。
1. 現在の文字コード設定を確認する
mysqlコンソールで以下のコマンド
show variables like "chara%";
+--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | cp932 | | character_set_connection | cp932 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | cp932 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | C:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+
あれ…UTF-8じゃないぞ…。
XAMPPのMySQL欄のConfigボタンから設定ファイルに飛べる。
my.iniの## UTF 8 Settingsのあたりのコメントアウトを全部はずす。
+--------------------------+--------------------------------+ | 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 | C:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+
これでOK
3. データベースの文字コードを確認する
show create database db_test;
+----------+-------------------------------------------------------------------- + | Database | Create Database | +----------+-------------------------------------------------------------------- + | db_test | CREATE DATABASE `db_test` /*!40100 DEFAULT CHARACTER SET latin1 */ | +----------+-------------------------------------------------------------------- + 1 row in set (0.00 sec)
ですよねー。
alter database db_test default character set utf8;
+----------+------------------------------------------------------------------+ | Database | Create Database | +----------+------------------------------------------------------------------+ | db_test | CREATE DATABASE `db_test` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+------------------------------------------------------------------+ 1 row in set (0.00 sec)
よし、OK。
4. テーブルを作り直す
Modelの定義をなんか適当に変えるとevolutionが作りなおしてくれる。
これで日本語も表示できる!
と思ったら、なんか画面に出るエラーのソースコードが文字化けしているのだけれど…。