MySQL CLI の日本語文字化けを SET character_set_results=utf8mb4; で解決する
MySQL CLI (CUI, REPL) で日本語が文字化けするときの解決方法をご紹介します。
MySQL 文字コード一覧
mysql> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
日本語の文字化け
mysql> select name_ja from product where id = 1;
+---------+
| name_ja |
+---------+
| ?? |
+---------+
1 row in set (0.01 sec)
文字コード character_set_results=utf8mb4 にセット
MySQL 自体の文字コード設定を変更できない場合、以下のように一時的に CLI でのクエリ実行結果の文字コードを utf8mb4 に変更することができます。
mysql> SET character_set_results=utf8mb4;
Query OK, 0 rows affected (0.00 sec)
日本語の文字化け解決
mysql> select name_ja from product where id = 1;
+----------+
| name_ja |
+----------+
| 商品 |
+----------+
1 row in set (0.01 sec)
以上、MySQL CLI で日本語の文字化けを文字コード utf8mb4 を設定して解決した、現場からお送りしました。