IDEA中连接MySQL数据库查看表信息时可能出现中文乱码问题的终极解决方案

相信看到这篇文章的各位已经被乱码折磨的体无完肤,所以长话短说。
常见的编码修改和配置一定是正确的,都是UTF-8,如下列图片所示。

  • 首先是IDEA的配置

  • 其次是MySQL的my.ini配置,我们在cmd查询一下

  • 然后是Navicat中数据库的配置

正常来讲以上三条可以解决95%的问题,然而我之前的情况是:

IDEA中的console页面乱码

Navicat的页面正常

人傻了,debug两天没发现,后来偶然间看到一篇Navicat初始化配置的博客发现了异常:

我们在编辑链接的时候,千万千万千万千万不能把这改成65001(UTF-8)

要保持第一个选项自动自动自动自动自动

然后我们回到数据库中会发现

擦,反而IDEA和Navicat都乱码了,但别着急,这里Navicat和IDEA显示不一致的bug找到了

IDEA显示的乱码才是真正的我们常用的UTF-8编码下的文字,也就是说之前我们在Navicat看到的“汉字”其实是乱码,IDEA从头到尾显示的都是正确的,反而我们之前在Navicat看到的都是其他的编码格式下的汉字,问题本质得以发现。

那么掌握了bug的根源,这时候debug就很简单了。我们drop原来的表,create新的表,内容保持一致,查看效果。

至此,bug彻底解决!

但问题还没结束,各位做项目的开发人员或者数据库规模较大的请注意!!!!!

一旦我们确定问题是本文所提到的连接编码错误,别急着把编码方式改回自动!因为改回自动之后会把错误编码的汉字全部变成乱码,也就是说原来数据库中所有包括汉字的字段都会变成乱码!

所以我们在改动之前,先把表文件的数据和结构导出为SQL,这时候导出的SQL语句内的汉字仍然是正常的汉字,所以没有影响!

删除原来的数据库和表,直接用导出的SQL新建数据库和表,这样可以防止数据丢失,也节约了大量建表时间。

posted @ 2023-03-27 01:06  烤盐咸鱼  阅读(828)  评论(0编辑  收藏  举报