nobuhiroharada.com

[MySQL] Macのターミナルだと日本語のデータがはてな(?)に文字化けしている場合の対処法

2020-02-22


MySQLの日本語データがはてな(?)に文字化けする

ある現場でMySQLに入っているデータをMacのターミナルで確認した際、下記のように日本語のデータがクエスチョンマーク(はてな、?)で表示されました。

mysql> SELECT id, data FROM fugatable;
+-----+-------------------------------------+
| id  | data                                |
+-----+-------------------------------------+
|   1 | ????                                |
|   2 | ????                                |
|   3 | ????                                |
|   4 | ????                                |
|   5 | ????                                |
+----+--------------------------------------+
5 rows in set (0.01 sec)

MySQLの文字コードの設定が「Japanese(EUC)」で、ターミナルのデフォルトの言語設定「Unicode(UTF-8)」のままだとこうなるようです。

MySQLが複数あって、文字コードがそれぞれ違っている場合、都度言語設定を変更するのも手間なので、iTerm2を使って、別のターミナルで対応するようにしました。

iTerm2 ダウンロード

公式サイト(https://iterm2.com/)からダウンロードできます。

iTerm2 言語設定手順

1. iTerm2起動
2. 左上メニューバー「iTerm2」を選択
3. 「Preferences」を選択
4. 「Profiles」アイコン選択
5. ナビゲーションバー「Terminal」を選択
6. 「Terminal Emulation」: Character Encoding を「Japanese(EUC)」を選択

設定を終えたら、iTerm2を再起動します。

前述の文字化けしていたMySQLにアクセスし直すと、文字化けせずに日本語が表示されます。

mysql> SELECT id, data FROM fugatable;
+-----+-------------------------------------+
| id  | data                                |
+-----+-------------------------------------+
|   1 | 東京                                 |
|   2 | 沖縄                                 |
|   3 | 大阪                                 |
|   4 | 福岡                                 |
|   5 | 滋賀                                 |
+----+--------------------------------------+
5 rows in set (0.01 sec)

MySQLのインスタンスがいくつもあり、Japanese(EUC)やUnicode(UTF-8)」など言語設定が違うのがある時などに便利なのではないかと思います。

以上になります。

ここまでお読みいただきありがとうございました。