问题
项目脚本编写完毕后,启动tomcat本地部署。但是在tomcat的启动窗口打印的启动信息中包含了大量的中文乱码,虽然这些对tomcat本身的使用没有任何影响,项目也可以正常运行,但是怎么看着怎么难受,有木有同感。如下图:
解决
1、tomcat配置文件
在tomcat目录的conf子目录中,找到一个名为 "logging.properties" 的文件。 打开这个文本文件,找到如下配置项:
java.util.logging.ConsoleHandler.encoding = UTF-8
将 UTF-8 修改为 GBK,修改后的为:
java.util.logging.ConsoleHandler.encoding = GBK
保存后,重启tomcat!
2、IDEA配置文件
在IDEA安装目录,进入bin目录找到idea.exe.vmoptions和idea64.exe.vmoptions文件,如下图:在这两个文件里面加上代码:-Dfile.encoding=UTF-8
在idea.exe.vmoptions配置具体如下
-server
-Xms128m
-Xmx512m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-XX:CICompilerCount=2
-Dsun.io.useCanonPrefixCache=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Djdk.attach.allowAttachSelf
-Dkotlinx.coroutines.debug=off
-Djdk.module.illegalAccess.silent=true
-Dfile.encoding=UTF-8
3、IDEA配置tomcat
重启IDEA,部署tomcat
原因分析
因为windows系统中,其命令行窗口在解码字节数组时,默认使用本地字符集(对于我们就是GBK),而tomcat默认输出的启动信息是通过utf8进行编码的,这就导致编码与解码所使用字符集的不一致,从而出现了乱码情况!