Tomcat中文乱码解决方案【亲测有效】

本文详细分析了SpringBoot项目在IDEA中运行无乱码,但在本地Tomcat部署时出现中文乱码的问题。通过排查数据库、SpringBoot配置及Tomcat配置,最终发现修改Tomcat的catalina.bat文件中的JAVA_OPTS参数,添加-Dfile.encoding=UTF-8可有效解决乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

场景一:SpringBoot项目,在IDEA中启动,访问接口,无乱码

 

 

 

 

 

 

场景二:SpringBoot项目,打成war包,发到本地tomcat下,启动访问接口,乱码

 

 

 

 

 

问题分析:

 

1、既然查询的结果在IDEA中显示正常,就说明,数据在数据库中存储的OK(不存在编码的问题)

 

数据库:couchdb

 

 

 

 

2、会不会是SpringBoot配置文件中没有配置编码呢?

 

application.properties:

 

spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true 
spring.http.encoding.force=true 

 

验证发现,不是SpringBoot项目配置的问题

 

 

3、会不会是tomacat的问题呢?

 

既然在IDEA中启动没问题,说明SpringBoot(自身内嵌tomcat web执行容器)是没有嫌疑的,那为什么放在本地tomcat下跑就中文乱码了呢?

 

配置tomcat编码

 

server.xml

 

  <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="600000"
			   maxThreads="150"            
               redirectPort="8444" maxPostSize="0" URIEncoding="UTF-8" />

 

试了下,这个没有什么卵用,可能我的tomcat比较倔脾气吧,还有个跟着类似的配置,也是没有什么卵用

 

   <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="600000"
			   maxThreads="150"            
               redirectPort="8444" maxPostSize="0" useBodyEncodingForURI="true" />

 

 

4、反正肯定是tomcat有问题,你负责跑我的项目,出问题了,不找你找谁?

 

解决方案:

 

修改bin/catalina.bat,添加一行配置

 

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

 

 

 

 

最后,乱码问题解决:

 

 

 

注意:这种改法适合linux系统,如果在Windows下用的话,tomcat启动时控制台输出的中文是乱码的,如下

 

 

 

两全其美的方法,请自行搜索解决!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值