<1>在命令行对数据库进行操作时,查看数据库中表的数据时,出现乱码问题。
问题截图如下:
出现这种问题的原因是:表使用的编码是utf8,而命令行使用的是GBK
解决办法如下:
一开始,以为是数据库的字符集编码出现了问题但是,修改之后查询发现还是没有作用。
然后通过查找资料发现:表使用的编码是utf8,而命令行使用的是GBK
解决办法如下:
可通过输入以下的命令进行解决:
SET character_set_results=gbk;
输入之后,发现问题解决
<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;
标签:编码,SET,name,utf8mb4,数据库,乱码,命令行,table,schema
From: https://blog.51cto.com/u_15912723/8228678