美文网首页
关于tomcat服务中的中文乱码

关于tomcat服务中的中文乱码

作者: MyChinaLin | 来源:发表于2020-07-25 15:29 被阅读0次

本文记录自己在解决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中进行以下设置。

<Connector port="8080" protocol="HTTP/1.1"

              connectionTimeout="20000"

              redirectPort="8443"

<!-- URIEncoding用于%XX编码之后解码的字符编码-->

URIEncoding="UTF-8"

<!--useBodyEncodingForURI使用http header中指定charset进行decode,默认值ISO-8859-1-->

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安装服务,

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

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

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

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

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

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

相关文章

网友评论

      本文标题:关于tomcat服务中的中文乱码

      本文链接:https://www.haomeiwen.com/subject/zixmlktx.html