最近打算写个mysql的条件备份脚本,通过脚本查询一张有中文字段的表时出现了查询结果为???的情况,进入容器后手动查询仍然为???,判断数据库的字符集出现问题

首先检查是否是mysql字符集出现问题,查询后发现存在Latin1的编码,查询后发现latin1不支持中文,但是不确定是哪个导致的乱码,每个都试下修改成utf8,看看效果。
SHOW VARIABLES LIKE ‘character%’;查看mysql字符集
SET character_set_client = utf8 ;在线修改字符集,但只对当前回话有效,退出后或者重启数据库失效。需要永久生效需要在my.cnf中添加配置 default-character-set= xxx

经过测试发现修改character_set_results为utf8后,中文字符恢复正常

不用以上方法也可解决中文乱码问题,在外部连接数据库时添加–default-character-set=utf8即可

本文介绍了一种解决MySQL数据库查询中文出现乱码的方法。通过调整字符集设置,特别是将character_set_results改为utf8,可以有效解决中文显示问题。此外,还提供了一种简便的解决方案:在连接数据库时指定默认字符集为utf8。

被折叠的 条评论
为什么被折叠?



