解决windows下由于字符编码导致的中文乱码问题

首先使用命令 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)
    至此,可以一劳永逸的解决中文乱码的问题了

你可能感兴趣的:(mysql)