一次tomcat数据乱码事件

一次环境变量出错导致的tomcat数据乱码事件

1.1 事件起因

由于业务的调整,我们需要将在A服务器上的后台系统迁移到B服务器上的后台,我们选择在下班后进行迁移,因为那个时间点,后台系统已经几乎没有人在使用了。我将原来的tomcat 暂停后,压缩打包后上传在到B的服务器,然后我在B服务器上启动该项目,项目是正常启动了,整个访问也是没有问题,但是后台返回的数据是乱码的。 注意,我整个操作是在我们的堡垒机上面进行的,就是因为通过堡垒机登录的,所以导致后面出现问题。

1.3 事件的错误

排查思路,tomcat启动日志中是否有异常,环境变量是否有异常?
在查看日志中发现是没有异常的,然后我通过xshell 去查看环境变量也是没有异常的(我为什么不直接在堡垒机上查看)。
最后在多次尝试中,发现通过堡垒机登录B服务器时的环境变量中的 LANG 变量为空 ,正常这个地方是有值的,所以问题就是这个了。

1.4 事件的解决办法

 解决办法1(临时):export LANG="en_US.UTF-8"
 解决办法2(永久):  编辑登录用户的家目录的 .bashrc 文件,在底部加上 
export LANG="en_US.UTF-8"
    ```
这样我们每次登录就会自动设置导入该值了。
### 1.5 问题引申 
   我们在tomcat 的server.xml 文件里面有个参数为 URIEncoding ,这个值默认为 UTF-8 的,但是如果我们在org.apache.catalina.STRICT_SERVLET_COMPLIANCE 将system property 设置为true,那么url编码就使用ISO-8859-1.可能导致的url乱码。

相关文章

一、生成keyStore 要使用ssl connector,必须先创建一个keystore。他包含了服务器中被客户端用于验证服...
原因 get提交的数据过大,超过了默认值。 解决办法 get提交配置 设置tomcat的server.xml。找到我们启动...
前言 Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开...
在server.xml中找到这句即可,加上URIEncoding=UTF-8即可。
错误信息 解决办法 找到tomcat的web.xml文件,搜索fork,找到如下代码 增加配置
1、老项目是用的8.0的tomcat,我一开始用的8.5版本启动的,本以为小版本不会造成问题,没想到8.5的会报...