关于tomcat服务中的中文乱码

本文记录自己在解决tomcat运行 WEB时产生乱码的解决情况,一般情况在conf/service.xml和在bin/catalina.bat下修改,这两个方法很多文章可以参考。

我的情况是在eclipse中设置了workSpace编码为UTF-8,开发的时候没有乱码,直接通过tomcat启动就会有乱码,这就是JVM虚拟机运行环境编码设置问题,属于后台编码bug,不同的启动方式通过不同的设置方法来规范JVM编码。

本文包括在service.xml、catalina.bat和service.bat中修改UTF-8编码,不包括启动窗口里面的编码。

一、Service.xml中修改(前端后台的传输乱码)

当我们在前端和后台之间传输数据有乱码情况时,可以参考在conf/service.xml中进行以下设置。

关于tomcat服务中的中文乱码_第1张图片

              connectionTimeout="20000"

              redirectPort="8443"

URIEncoding="UTF-8"

useBodyEncodingForURI="true"/>

二、start.bat启动乱码(后台读写文件乱码)

当我们设置开发环境为UTF-8编码时,文件读写正常,通过bin/start.bat启动项目时文件读写产生乱码,则可以在bin/catalina.bat添加如下信息,设置中包括内存设置。

if not "%JSSE_OPTS%" == "" goto gotJsseOpts

set JSSE_OPTS="-Djdk.tls.ephemeralDHKeySize=2048"

:gotJsseOpts

set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF-8 -Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=2

三、tomcat8.exe或者以后台服务的方式启动乱码(后台读写文件乱码)

首先开启service服务,通过cmd运行service.bat install安装服务,

关于tomcat服务中的中文乱码_第2张图片
关于tomcat服务中的中文乱码_第3张图片
关于tomcat服务中的中文乱码_第4张图片

点击tomcat8w.exe查看服务配置,

关于tomcat服务中的中文乱码_第5张图片

临时改变环境编码配置,在java栏中的java Options中加入新的一行-Dfile.encoding=UTF-8,拿到其他服务器需要重新配置。

关于tomcat服务中的中文乱码_第6张图片

永久添加编码配置,先卸载tomcat服务,在bin路径下,运行service.bat remove,

关于tomcat服务中的中文乱码_第7张图片

在service.bat中添加-Dfile.encoding=UTF-8如下图所示,记得分号隔开。

关于tomcat服务中的中文乱码_第8张图片

重新运行运行service.bat install安装tomcat服务。

关于tomcat服务中的中文乱码_第9张图片

至此,乱码问题终于解决。。。。。。。。。。狗狗Day~~~~~~~~~~~~~

你可能感兴趣的:(关于tomcat服务中的中文乱码)