后台接收值反复中文乱码

新人一枚,

JAVA第一次写后台的时候,后台接收传值中文乱码,然后我给转了

String name = null;
        try {
            name = new String((request.getParameter("name")==null?"":request.getParameter("name")).getBytes("iso-8859-1"),"UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

经过这样转码,后台成功接收中文且无乱码。
后面所有的后台接收值都这样写,并无乱码。
再到后来,就打包发布war包。

过了大概几个礼拜,我再次更新发布war包,之前的所有转码统统给我中文乱码了。

注:我并未修改之前的任何东西。

然后我又得把之前所有的后台接收值转码代码取消,改为

String name = request.getParameter("name");

这样,中文乱码又好了。

中间几次更新发布war包,这样反反复复几次,我快要疯了,原因又找不到,求大神指点一下,或者有碰到这种情况的哥哥姐姐帮忙解惑,谢谢!

你要在乱码的时候调试一下看是哪里导致乱码?把request.getParameter("name")的值打印出来看下。你不用每一个参数都指定编码,可以在配置文件中全局配置所有接口参数的编码。具体怎么配看你用的什么框架百度“全局编码配置”

Tomcat 解决乱码的两种方法:
1、为应用配置一个编码拦截器,这样就不需要对所有用到参数的地方都这样转码一次了。
2、修改 Tomcat 的 server.xml 的 connector 配置,添加 URI 配置:

<Connector port="80" protocol="HTTP/1.1"
                 connectionTimeout="8000"
              redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8" allowTrace="true"/>

在tomcat中修改字符集编码。