目录
1.1问题描述:IDEA在tomcat上部署web项目时引用js文件的中文在浏览器上出现乱码
2.1问题描述:IDEA在tomcat上部署web项目时控制台日志、中文出现乱码
本次IDEA使用的是2020.1.1版本,Tomcat则为8.5.47。
1.1问题描述:IDEA在tomcat上部署web项目时引用js文件的中文在浏览器上出现乱码
1.2解决方案
(1)基本操作与大部分网上查阅的一致,打开 Settings 中搜索 File Encodings ,设置全局和项目编码。
(2)
①在IDEA服务器配置界面的 VM options 输入框中输入 -Dfile.encodig=UTF-8 ;
②也可以在Tomcat安装目录下找到 /bin/catalina.bat 文件,将文件中的
set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%"
改为
set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF-8"
修改 .bat 文件可以将Tomcat服务器的运行编码持久化为 UTF-8 ,此操作完成可以不用修改IDEA服务器配置界面的VM options中的参数。
(3)打开IDEA安装目录下的 /bin 目录,找到 idea.exe.vmoptions 和 idea64.exe.vmoptions 两个文件,32位电脑修改 idea.exe.vmoptions 文件,64位电脑则修改 idea64.exe.vmoptions 文件,在文件内容底部另起一行输入 -Dfile.encodig=UTF-8 ,此修改目的是为了设置IDEA开发工具的编码。
以上三个步骤完成后,重启IDEA后运行web项目引用JS文件时浏览器的中文乱码问题基本就可以解决了,需要注意的是前端页面的编码也得是 UTF-8 。
1.3解决过程中产生的问题
网上查阅解决该问题时,完成上述三个步骤,基本可以解决问题,但笔者却无法顺利解决,也就是web项目运行时前端引用的JS中文依旧是乱码。
经过大量对比及尝试,笔者发现问题出在了上述步骤的第三个中,也就是在 .vmoptions 文件中加入 -Dfile.encodig=UTF-8 后,实际上没起任何作用,笔者也很疑惑,经过网上的一番搜索后,发现IDEA中其实是可以打开当前IDEA所使用的 vmoptions 文件,依次点击工具栏 Help -> Edit Custom VM Options 即可在IDEA编辑 vmoptions 文件,打开后发现该文件的内容跟上述第三个步骤中的 vmoptions 文件不一样,文件位置也不同,咱们同样也在内容底部加入 -Dfile.encoding=UTF-8 ,重启IDEA,运行项目后问题得到解决。
这里顺便提一下 vmoptions 文件的作用,该文件是用于配置IDEA虚拟机参数的,但跟项目中的虚拟机参数配置是有区别的, vmoptions 文件针对的是IDEA环境,是IDEA运行时用的配置,并不是项目运行的配置,对通过IDEA运行的java项目不起作用,指定Java程序的VM参数配置需针对该Java程序进行设置。
2.1问题描述:IDEA在tomcat上部署web项目时控制台日志、中文出现乱码
2.2解决方案
在Tomcat安装目录下编辑 /conf/logging.properties 文件,将以下三个参数改为与开发工具编码、项目编码一致的编码就行了,即如果开发工具编码、项目编码都为 GBK ,则将 UTF-8 改为GBK 即可,反之则不需要修改。
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
2localhost.org.apache.juli.AsyncFileHandler.encoding = UTF-8
java.util.logging.ConsoleHandler.encoding = UTF-8
说明:第一个参数设置 Tomcat Localhost Log 日志的输出编码 ,第二个参数设置 Tomcat Catalina Log 日志的输出编码,第三个则为设置 Server 控制台的日志输出编码。
本次分享希望能够帮助大家解决相关问题,文章中若有哪里描述不当,欢迎评论补充!