xamppからmysql利用時の文字化け問題


恐竜名文字化け問題

show create table テーブル名;コマンドで文字コードを確認。
ラテン語になっている。

2.解決策

(1).[mysqld]の編集

my.iniファイルの[mysqld]セクションの最後の「## UTF 8 Settings」を探す

変更前

## UTF 8 Settings
#init-connect=\'SET NAMES utf8\'
#collation_server=utf8_unicode_ci
#character_set_server=utf8
#skip-character-set-client-handshake
#character_sets-dir="C:/xampp/mysql/share/charsets"

↓utf-8に関する下記部分をコメントアウトする。

変更後

## UTF 8 Settings
init-connect='SET NAMES utf8'
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake
character_sets-dir="C:/xampp/mysql/share/charsets"

(2).次に[client][mysqldump][mysql]の各最後に次の行を追加する。

default-character-set=utf8mb4

[client] 
# password       = your_password 
#port            = 3306
port            = 3308  
socket          = "C:/xampp/mysql/mysql.sock"
#下記を追記
default-character-set=utf8mb4
[mysqldump]
quick
max_allowed_packet = 16M
#下記を追記
default-character-set=utf8mb4
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
#下記を追記
default-character-set=utf8mb4

(3).作成済みテーブルの文字コードの変更

下記コマンドで、文字コードを変更。

ALTER TABLE tbl_dino CONVERT TO CHARACTER SET utf8mb4;

MariaDB [db_dino]> show create table tbl_dino;
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                                                                                                                                                                    |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tbl_dino | CREATE TABLE `tbl_dino` (
  `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
  `dname0` varchar(100) DEFAULT NULL,
  `type0` varchar(50) DEFAULT NULL,
  `n_src1` int(11) DEFAULT NULL,
  `type1` varchar(50) DEFAULT NULL,
  `n_src2` int(11) DEFAULT NULL,
  `type2` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 |
+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [db_dino]>

参考url

XAMPPの文字化け回避メモ
my.iniファイルの確認と修正