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

相关推荐
计算机毕设指导614 小时前
基于微信小程序的积分制零食自选平台【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
计算机学姐16 小时前
基于SSM的生鲜食品商城系统【2026最新】
java·vue.js·后端·mysql·java-ee·tomcat·mybatis
独自归家的兔16 小时前
大模型通义千问3-VL-Plus - 视觉理解
java·人工智能·intellij-idea
毕设源码-钟学长17 小时前
【开题答辩全过程】以 高校健康申报系统为例,包含答辩的问题和答案
java·tomcat·echarts
BD_Marathon1 天前
【JavaWeb】IDEA运行并部署JavaWeb项目原理
java·ide·intellij-idea
TT哇2 天前
【Database Navigator 插件】idea 社区版连接 mysql 数据库
java·数据库·mysql·intellij-idea·database
BD_Marathon2 天前
【JavaWeb】IDEA关联Tomcat并使用Tomcat运行JavaWeb项目
java·tomcat·intellij-idea
柒.梧.2 天前
手写Tomcat的实现代码分享
java·tomcat
奈何不吃鱼2 天前
【安装配置教程】在linux部署java项目
java·linux·intellij-idea·jar
水月wwww2 天前
javaweb项目入门实战
firefox·javaweb·项目部署·默认首页设置·项目路径·路径映射