XAMPPでMySQLを起動させてmy.ini php.iniを編集したが日本語の文字化けしてしまう。

XAMPPでMySQLを起動させて、「my.ini」や「php.ini」というファイルを編集したが日本語の文字化けしてしまうことについて書きます。

■バージョン

XAMPP Version 7.4.7(Windows10)

■文字コードに関する情報を確認

XAMPPでApacheとMySQLで起動。起動後、コマンドプロンプトからMySQLを操作。

文字コードに関する情報を取得してみると、

MariaDB [uriage]> show variables like “chara%”;
+————————–+——————————–+
| Variable_name | Value |
+————————–+——————————–+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | cp932 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | C:\xampp\mysql\share\charsets\ |
+————————–+——————————–+

ほとんどは「utf8mb4」になっていますが、これでも問題はないはずです。なお、今回は「uriage」というデータベースを新しく作成しています。

作成したデータベースに、

create table user (id int, name varchar(10), address varchar(10));

上記のコードを記述しEnterキーを押して、テーブルを作成してみます。

作成後、

insert into user values (1, '小林', '大阪');

上記のコードを記述しEnterキーを教えて、日本語のデータを追加してみます。

追加後、

select * from user;

データが追加されたかどうかを上記のコードを記述しEnterキーを押して確認してみます。

MariaDB [uriage]> select * from user;
+——+——+———+
| id | name | address |
+——+——+———+
| 1 | ???? | ???? |
+——+——+———+
2 rows in set (0.000 sec)

確認を行いましたが、日本語の文字化けしてしまっています。原因と改善するための方法を探してみると、上記のページが見つかり、ページ内に書かれていたことを試してみます。

MariaDB [uriage]> SET character_set_results = sjis;
Query OK, 0 rows affected (0.000 sec)

MariaDB [uriage]> SET character_set_client = sjis;
Query OK, 0 rows affected (0.000 sec)

試すことは「SET character_set_results = sjis;」と、「SET character_set_client = sjis;」というコードを記述しEnterキーで実行すること。これで文字コードの変更を行ってみます。

変更された後に、文字コードに関する情報を取得してみると、

MariaDB [uriage]> show variables like “chara%”;
+————————–+————————————-+
| Variable_name | Value |
+————————–+————————————-+
| character_set_client | sjis |
| character_set_connection | utf8mb4 |
| character_set_database | cp932 |
| character_set_filesystem | binary |
| character_set_results | sjis |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| character_sets_dir | C:\xampp\mysql\share\charsets\ |
+————————–+————————————-+

「character_set_results」と、「character_set_client」の文字コードが変更されています。

この状態で、

insert into user values (2, '成田', '大阪');

上記のコードを記述し、データを追加してみます。

追加後、データが追加されたかどうかを確認してみます。

MariaDB [uriage]> select * from user;
+——+——+———+
| id | name | address |
+——+——+———+
| 1 | ???? | ???? |
| 2 | 成田 | 大阪 |
+——+——+———+
2 rows in set (0.002 sec)

確認してみると、今度は日本語でデータが追加されていることを確認できました。

コメント

タイトルとURLをコピーしました