关于GBK和UTF-8进行互转时出现乱码
项目中GBK编码和UTF-8编码的文件内容相互转化时会遇到许许多多的问题 常见的由于这两者编码转换出现的问题如下图中显示  参考链接:UTF-8与GBK互转,为什么会乱码
那么要如何解决编码不统一带来的问题呢?
一、修改当前 Web 项目 Tomcat Server 的虚拟机输出选项
上方导航栏“Run→Edit Configurations…”进入配置页面,修改当前 Web 项目 Tomcat Server 的虚拟机输出选项 VM options 添加 -Dfile.encoding=UTF-8 。在重启之后运行程序检查控制台信息,如果不管用请执行下面的步骤。 
二、修改 IntelliJ IDEA 全局编码、项目编码、属性文件编码
上方导航栏“File→Settings…”进入配置页面,在“Editor”中下滑找到“File Encodings”,分别将 Global Encoding、Project Encoding、Default encoding for properties files 都设置为 UTF-8。在重启之后运行程序检查控制台信息,如果不管用请执行下面的步骤。 
三、IntelliJ IDEA 中自定义虚拟机选项
上方导航栏“Help→Etit Custom VM Options…”进入自定义虚拟机选项页面。  
在 idea64.exe.vmoptions 文件尾加上-Dfile.encoding=UTF-8。在重启之后运行程序检查控制台信息,一般到了这步问题就解决了,当然如果不管用请执行下面的超级步骤。
四、直接修改 IntelliJ IDEA 配置文件的编码信息
我们打开 IntelliJ IDEA 在本地的安装目录,找到下面两个文件,使用记事本打开,在最后一行添加-Dfile.encoding=UTF-8 即可。在重启之后运行程序检查控制台信息,问题解决!    参考链接:4 种方法完美解决 IntelliJ IDEA 控制台中文乱码问题
然而上面的步骤是用来解决编码不统一的问题,顺便提一嘴intellij IDEA中修改编码时到底是选Reload还是Convert
关于Reload还是Convert
Reload 表示使用新编码重新加载,新编码不会保存到文件中,重新打开此文件,旧编码是什么依旧还是什么。 Convert 表示使用新编码进行转换,新编码会保存到文件中,重新打开此文件,新编码是什么则是什么。
先点Reload,显示过来,后面再点covert去整个转换。不然Convert 之后可能会使中文变成乱码,无法还原。
参考链接:IEDA,编码格式到底是选Reload还是Convert!!!血的教训!别瞎点!
然而上面这么多方法都还是解决不了我遇到的问题 但是!!
最后找到了问题所在
再后台的servlet代码中添加添加这一行代码后问题就解决了!!!
response.setContentType("text/html;charset=utf-8");
然后页面就能正常的显示汉语中文了,问题解决!! 参考链接:java返回json请求中文变成问号问题
|