首先使用命令 show variables like ‘%char%’;查看当前字符编码
Variable_name | Value |
---|---|
character_set_client | gbk |
character_set_connection | gbk |
character_set_database | latin1 |
character_set_filesystem | binary |
character_set_results | gbk |
character_set_server | latin1 |
character_set_system | utf8 |
character_sets_dir | D:\wamp\bin\mysql\mysql5.7.19\share\charsets\ |
8 rows in set, 1 warning (0.00 sec)
可以看到目前字符编码不统一,这就容易导致中文乱码的情况出现
mysql> desc p39_goods;
| Field | Type | Null | Key | Default | Extra |
|------------| ---| ----------| ----------------| -----------| ----------|
| id | mediumint(8) unsigned | NO | PRI | NULL | auto_increment |
| goods_name | varchar(150) | NO | | NULL | |
| market_price | decimal(10,2) | NO | | NULL | |
| shop_price | decimal(10,2) | NO | MUL | NULL | |
| goods_desc | longtext | YES | | NULL | |
| is_on_sale | enum(' | NO | MUL | | |
| is_delete | enum(' | NO | | | |
| addtime | datetime | NO | MUL | NULL | |
这里中文的地方直接显示不出来了
为了永久解决这个问题,可以在my.ini文件中做如下修改:
在mysql模块下增加如下一行
- (1)default-character-set=utf8
(默认编码设置,一般应与操作系统编码一致)
(修改成default-character-set=gbk)(gb18030不行)
在mysqld模块下增加如下一行 - (2)character-set-server=utf8(服务端编码设置)
(默认不需要改,但如果不是utf8,建议改成utf8)
至此,可以一劳永逸的解决中文乱码的问题了