java 线上部署后的编码问题

String tmpsubject = tmpjo.getString("title");
reqVo.setTitle(new String(tmpsubject.getBytes("utf-8"),"utf-8"));
本机测试编码没有问题,但是上线部署这里的编码就出问题了,应该怎么解决?求大神解答

Tomcat 服务器是否配置 URIEncoding 了:

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

使用过滤器

HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");

1、请求别人的接口接口一般情况下要先确认接口数据的传递方式,然后进行字符集转换
2、如果没有设置一般情况下是“ISO-8859-1”格式,如果实在无法确定就只有判断字符集

/**
     * 判断字符集
     * 
     * @param str
     * @return
     */
    private String getEncoding(String str) {
        String encode;

        encode = "UTF-16";
        try {
            if (str.equals(new String(str.getBytes(), encode))) {
                return encode;
            }
        } catch (Exception ex) {
            // 打印错误日志到文件
            LoggerUtils.error(ex);
        }

        encode = "ASCII";
        try {
            if (str.equals(new String(str.getBytes(), encode))) {
                return "字符串<< " + str + " >>中仅由数字和英文字母组成,无法识别其编码格式";
            }
        } catch (Exception ex) {
            // 打印错误日志到文件
            LoggerUtils.error(ex);
        }

        encode = "ISO-8859-1";
        try {
            if (str.equals(new String(str.getBytes(), encode))) {
                return encode;
            }
        } catch (Exception ex) {
            // 打印错误日志到文件
            LoggerUtils.error(ex);
        }

        encode = "GB2312";
        try {
            if (str.equals(new String(str.getBytes(), encode))) {
                return encode;
            }
        } catch (Exception ex) {
            // 打印错误日志到文件
            LoggerUtils.error(ex);
        }

        encode = "UTF-8";
        try {
            if (str.equals(new String(str.getBytes(), encode))) {
                return encode;
            }
        } catch (Exception ex) {
            // 打印错误日志到文件
            LoggerUtils.error(ex);
        }

        return "未识别编码格式";
    }
        String tmpsubject  = tmpjo.getString("title");
        String encoding = getEncoding(tmpsubject);
        String tmpsubjectNew =  new String(tmpsubject.getBytes(encoding),"utf-8");