在开发中,遇到乱码应该是最头疼的事情了吧,在你被折磨疯了时,看到这里肯定能解决你的问题,还你一个轻松好心情!!!!作为一名开发老师,下面的解决办法都是上课中遇到并成功解决的经验之谈,希望也能解决你的问题。
一、idea添加到数据库的中文乱码,查询数据库数据显示在idea也乱码。
Navicat初始化配置的问题:
我们在创建数据库链接的时候,千万千万千万千万不能把这改成65001(UTF-8)

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

我们drop原来的表,create新的表,内容保持一致,查看效果,解决问题。
注意注意注意:
一旦我们确定问题是上文所提到的链接编码错误,别急着把编码方式改回自动!因为改回自动之后会把错误编码的汉字全部变成乱码,也就是说原来数据库中所有包括汉字的字段都会变成乱码!
所以我们在改动之前,先把表文件的数据和结构导出为SQL,这时候导出的SQL语句内的汉字仍然是正常的汉字,所以没有影响!
删除原来的数据库和表,直接用导出的SQL新建数据库和表,这样可以防止数据丢失,也节约了大量建表时间。
二、在使用idea写项目,往数据库保存中文时出现中文乱码问题。把数据库的数据查出来显示在idea中又正常。
1、检查idea自身编码方式,将idea的编码方式全部设置成utf8。


2、检查配置文件的编码,在连接数据库的配置语句后面加上
?useUnicode=true&characterEncoding=UTF-8

3、检查数据库编码,将编码方式设置成utf8。

4、检查mysql的字符集是否为utf8。
使用一下代码查询:
show variables like 'char%';

如果你的字符集编码不是utf8,则需要修改配置文件并且重启才能使字符集编码为utf8(一定要重启)。具体操作如下:
找到mysql 的配置文件(mysql5.6为my-default.ini,mysql6.0以后的是my.ini),做如下修改,主要就是添加画红框的地方,完整的配置如下:

保存后重启,使用show variables like 'char%'; 就可以看到字符集已经修改为utf8了。
5、如果你的是web项目的话,则需要在你的web.xml文件中加上如下配置
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
6、也可能是浏览器编码问题,参考一下这篇文章:https://blog.youkuaiyun.com/u014079773/article/details/52637057
IDEA与MySQL中文乱码解决方案

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



