<1>在命令行对数据库进行操作时,查看数据库中表的数据时,出现乱码问题。

问题截图如下:

                      数据库命令行操作时,出现乱码问题_MySQL

出现这种问题的原因是:表使用的编码是utf8,而命令行使用的是GBK

解决办法如下:

一开始,以为是数据库的字符集编码出现了问题但是,修改之后查询发现还是没有作用。

                      数据库命令行操作时,出现乱码问题_MySQL_02

然后通过查找资料发现:表使用的编码是utf8,而命令行使用的是GBK

解决办法如下:

可通过输入以下的命令进行解决:

SET character_set_results=gbk;

                      数据库命令行操作时,出现乱码问题_命令行_03

输入之后,发现问题解决

                      数据库命令行操作时,出现乱码问题_命令行_04

<2>当出现不是乱码问题不是这个原因时,可根据以下的步骤解决:

1.首先,检查MySQL客户端字符编码,目前MySQL客户端支持四种字符集:

  • – GBK
  • – GB2312
  • – GB18030
  • – UTF-8

一般建议使用UTF-8字符集

假设数据库实例是cms

ALTER DATABASE cms CHARACTER SET utf8mb4;

# 并修改表的编码

ALTER TABLE tb_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

最后,需要确保表中存储的数据正确对应字符编码,可以采用以下方法检查字段编码:

# 假设数据表名叫tbl_name

SELECT t.table_name ,t.table_collation,c.column_name, c.collation_name FROM information_schema.tables t LEFT JOIN information_schema.columns c ON t.table_schema = c.table_schema AND t.table_name = c.table_name WHERE t.table_name = ‘tb_name’ AND t.table_schema = ‘database_name’;

如果编码不一致,请用如下脚本来修改字段编码:

ALTER TABLE tb_name MODIFY field_name VARCHAR(100) CHARACTER SET utf8mb4;