JavaWeb项目中汉语中文字在页面和intellij IDEA控制台中显示为问号的编码问题

文章目录

    • 关于GBK和UTF-8进行互转时出现乱码
    • 那么要如何解决编码不统一带来的问题呢?
      • 一、修改当前 Web 项目 Tomcat Server 的虚拟机输出选项
      • 二、修改 IntelliJ IDEA 全局编码、项目编码、属性文件编码
      • 三、IntelliJ IDEA 中自定义虚拟机选项
      • 四、直接修改 IntelliJ IDEA 配置文件的编码信息
    • 关于Reload还是Convert
    • 最后找到了问题所在

关于GBK和UTF-8进行互转时出现乱码

项目中GBK编码和UTF-8编码的文件内容相互转化时会遇到许许多多的问题
常见的由于这两者编码转换出现的问题如下图中显示
JavaWeb项目中汉语中文字在页面和intellij IDEA控制台中显示为问号的编码问题_第1张图片
参考链接:UTF-8与GBK互转,为什么会乱码

那么要如何解决编码不统一带来的问题呢?

一、修改当前 Web 项目 Tomcat Server 的虚拟机输出选项

上方导航栏“Run→Edit Configurations…”进入配置页面,修改当前 Web 项目 Tomcat Server 的虚拟机输出选项 VM options 添加 -Dfile.encoding=UTF-8 。在重启之后运行程序检查控制台信息,如果不管用请执行下面的步骤。
JavaWeb项目中汉语中文字在页面和intellij IDEA控制台中显示为问号的编码问题_第2张图片

二、修改 IntelliJ IDEA 全局编码、项目编码、属性文件编码

上方导航栏“File→Settings…”进入配置页面,在“Editor”中下滑找到“File Encodings”,分别将 Global Encoding、Project Encoding、Default encoding for properties files 都设置为 UTF-8。在重启之后运行程序检查控制台信息,如果不管用请执行下面的步骤。
JavaWeb项目中汉语中文字在页面和intellij IDEA控制台中显示为问号的编码问题_第3张图片

三、IntelliJ IDEA 中自定义虚拟机选项

上方导航栏“Help→Etit Custom VM Options…”进入自定义虚拟机选项页面。
JavaWeb项目中汉语中文字在页面和intellij IDEA控制台中显示为问号的编码问题_第4张图片
JavaWeb项目中汉语中文字在页面和intellij IDEA控制台中显示为问号的编码问题_第5张图片

在 idea64.exe.vmoptions 文件尾加上-Dfile.encoding=UTF-8。在重启之后运行程序检查控制台信息,一般到了这步问题就解决了,当然如果不管用请执行下面的超级步骤。

四、直接修改 IntelliJ IDEA 配置文件的编码信息

我们打开 IntelliJ IDEA 在本地的安装目录,找到下面两个文件,使用记事本打开,在最后一行添加-Dfile.encoding=UTF-8 即可。在重启之后运行程序检查控制台信息,问题解决!
JavaWeb项目中汉语中文字在页面和intellij IDEA控制台中显示为问号的编码问题_第6张图片
JavaWeb项目中汉语中文字在页面和intellij IDEA控制台中显示为问号的编码问题_第7张图片
JavaWeb项目中汉语中文字在页面和intellij IDEA控制台中显示为问号的编码问题_第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请求中文变成问号问题

你可能感兴趣的:(经验分享,JAVA,java,idea,intellij,idea,后端,经验分享)