白猫のメモ帳

C#とかJavaとかJavaScriptとかHTMLとか機械学習とか。

Play Frameworkで遊びたい④

続き。

文字化け編

こんな編作りたくなかった…。


①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じゃないぞ…。

2. MySQL文字コード設定を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が作りなおしてくれる。


これで日本語も表示できる!
と思ったら、なんか画面に出るエラーのソースコードが文字化けしているのだけれど…。