IDEA2024最新版本运行Web应用时 Tomcat 日志中的中文乱码问题修复解决

一、IDEA2024运行Tomcat日志中的中文乱码问题修复

在使用tomcat的时候经常遇到乱码问题,要么是控制台输出乱码或者输出日志乱码,要么页面接收乱码,产生乱码的根本原因就是编码和解码不一致。网上有的文章写得也有问题,今天自己多看了一些文章,同时自己试了试摸索了一下,找到了终极解决方法。

IDEA2024运行 Tomcat 中文乱码问题的修复解决办法包括以下几个步骤和涉及的几个配置文件。注明一下,我这里的 Tomcat 版本是 10.1.31 版本。

1. IDEA本身的配置

修改IDEA->设置->编辑器->控制台 ,将默认编码设置为UTF8,网上有些文章让人修改成GBK,现在不到万不得已谁还用GBK啊,我们的程序文件代码不都清一色UTF8吗,所以这里肯定UTF8。

2. 修改 Tomcat下 \bin\catalina.bat 文件

网上有文章提出这里在104行 setlocal 之后增加下面这行内容。

set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8

但添加之后运行WEB项目出现报错:Unrecognized VM option 'MaxPermSize=1024m'。因为JAVA版本的问题,JVM无法识别VM选项'MaxPermSize=1024m'。因为从Java 8开始,永久代(PermGenspace)已不存在,取而代之的是元空间(Metaspace)。所以,这个选项已经不再被JVM支持。

也搜了网上的解决方法:如果你正在使用的是Java 8或更高版本,建议移除或者替换掉这个不再被支持的选项。如果你需要为元空间(Metaspace)设置一个初始化大小,你可以使用-XX:MetaspaceSize选项来指定。但修改成下面的配置依然会报错:Unrecognized VM option 'MaxPermSize=1024m'

set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=1024m -Dfile.encoding=UTF-8

我试了一下,我们只是需要修改编码,其它的东西看着也不相关,所以就把上面的这行内容直接修改简化为 set -Dfile.encoding=UTF-8 见如下截图:

上面的1和2两个小项修改好了之后,IDEA的控制台-服务器上的日志中文正常。试了试修改其中一个为GBK都会导致服务器控制台上的中文日志乱码。

3. tomcat的/conf/server.xml 配置文件。

在 Connector 配置项中 增加编码方式,位置在配置文件的约70行附近,如下增加一行 URIEncoding="UTF-8" 配置。

bash 复制代码
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000"
               URIEncoding="UTF-8"
               />

4、tomcat的日志配置 \conf\logging.properties

tomcat 的日志配置文件 \conf\logging.properties 日志编码格式也需要修改一下,这里涉及到的两项修改分别对应 Tomcat 在 IDEA 界面上的 Tomcat Catalina 日志和 Tomcat Localhost 日志,大约在文件的第30行上下,如下位置 ,通过修改测试对比,需要将这两项值修改为GBK,可能是 Tomcat 内部的日志输出编码所致。修改为 GBK 后IDEA 界面上的 Tomcat Catalina 日志和 Tomcat Localhost 日志 中文乱码问题得到解决。

1catalina.org.apache.juli.AsyncFileHandler.level = ALL

1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs

1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.

1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90

1catalina.org.apache.juli.AsyncFileHandler.encoding = GBK

2localhost.org.apache.juli.AsyncFileHandler.level = ALL

2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs

2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.

2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90

2localhost.org.apache.juli.AsyncFileHandler.encoding = GBK

相关推荐
小码ssim9 小时前
IDEA使用tips(LTS✍)
java·ide·intellij-idea
小叶lr10 小时前
idea 配置 leetcode插件 代码模版
java·leetcode·intellij-idea
qq_4298565710 小时前
idea启动服务报错Application run failed
java·ide·intellij-idea
Cod_Next11 小时前
Mac系统下配置 Tomcat 运行环境
java·macos·tomcat
小安同学iter12 小时前
Java进阶五 -IO流
java·开发语言·intellij-idea
不能只会打代码13 小时前
大学课程项目中的记忆深刻 Bug —— 一次意外的数组越界
java·github·intellij-idea·话题博客
聂 可 以15 小时前
IDEA一键启动多个微服务
java·微服务·intellij-idea
刘大浪15 小时前
IDEA 2024安装指南(含安装包以及使用说明 cannot collect jvm options 问题一)
java·ide·intellij-idea
爬山算法1 天前
Tomcat(23)如何配置Tomcat的连接器以优化性能?
java·tomcat
栽树先生~1 天前
解决IntelliJ IDEA的Plugins无法访问Marketplace去下载插件
java·ide·intellij-idea