ターミナルでmysqlを立ち上げ、
my sql> use (DBの名前)
mysql> desc (テーブルの名前);
すると
フィールドの一覧が表示されます。
私は今回、membersというテーブルを作ってあったので、それを読み出しました。
mysql> desc members;
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| member_number | int(11) | NO | | NULL | |
| player | tinyint(1) | NO | | 0 | |
| family_name | varchar(255) | NO | | NULL | |
| given_name | varchar(255) | NO | | NULL | |
| furigana | varchar(255) | NO | | NULL | |
| email | varchar(255) | YES | | NULL | |
| phone | varchar(255) | YES | | NULL | |
| sex | int(11) | YES | | NULL | |
| birthday | date | YES | | NULL | |
| remarks | text | YES | | NULL | |
| created_at | datetime | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
+---------------+--------------+------+-----+---------+----------------+
13 rows in set (0.01 sec)
ここからレコードを抜き出してみよう。まずは名字から
mysql> select family_name from members;
+-------------+
| family_name |
+-------------+
| ???? |
| ???? |
| ???? |
| ???? |
| ???? |
| ???? |
| ???? |
| ???? |
| ???? |
| ???? |
+-------------+
ばっちり文字化けです!
mysql>set character set sjis;
本に書いてある通りに打ってみます。これで表示してくれるだろう。。。
と思ったけど、やっぱり同じ結果。
う〜ん、、、と悩みをtwittしたところ、心優しい人たちが解決方法を伝授してくれました。
(1)そもそもsjisでファイルを作っちゃダメ!
私はmacユーザー。本はwin向け。よってファイルがsjisで作られてるわ、characterもsjisになってるわで全然これじゃ表示出来ないって話です。
(2)ターミナルの環境設定をもう一度見よう。
こんな初歩的なところで、、、、恥ずかしくなりました。
ここがutf-8になっていなかった。恥ずかしい!
これでもう一度
mysql> select family_name from members;
+-------------+
| family_name |
+-------------+
| 佐藤 |
| 鈴木 |
| 高橋 |
| 田中 |
| 渡辺 |
| 伊藤 |
| 山本 |
| 佐藤 |
| 鈴木 |
| 高橋 |
+-------------+
10 rows in set (0.00 sec)
うん、できました!
0 件のコメント:
コメントを投稿