很奇怪的tomcat乱码问题,麻烦各位帮忙看下!

环境: window server 2008 nginx-->tomcatA,tomcatB

 tomcatA通过代码发起url get访问tomcatB,B接收到的中文乱码!

环境: window10

同样的配置和代码tomcatA访问tomcatB,B接收到的中文是正常的!
都说server.xml添加URIEncoding="UTF-8"可以解决这个问题;
但是我本地访问window server服务器接收是正常的;所以我认为应该不是tomcat配置的问题;
麻烦各位帮忙看下是什么原因!

代码:

tomcat

<Connector port="9090" protocol="HTTP/1.1" enableLookups="false" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

java

public static String loadJson(String url)
    {
        StringUtil.log("请求连接>>>>" + url);
        StringBuilder json = new StringBuilder();
        try
        {
            URL urlObject = new URL(url);
            BufferedReader in = new BufferedReader(new InputStreamReader(urlObject.openStream(), "UTF-8"));
            String inputLine;
            while ((inputLine = in.readLine()) != null)
            {
                json.append(inputLine);
            }
            in.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        return json.toString();
    }
阅读 4k
6 个回答

get请求参数做url编码再发送吧

Servlet的get()方法里面设置编码
request.setCharacterEncoding("utf-8");

方法前面用注释,注上UTF-8的编码

@RequestMapping(value = { "" },produces = "text/html;charset=UTF-8")

tomcat配置里面加上配置“-Dfile.encoding=UTF-8”

clipboard.png
其他地方,什么jdk、jsp之类的,能配的都配

uriencoding, 不是 content-type 吧. 你收到的乱码用 utf-8, gbk, 都解析看看, 到底是哪种.

我记得至修改server.xml还不够,还要这样
tomcat 安装目录下 conf 文件夹中的web.xml 添加

<filter>
    <filter-name>setCharacterEncodingFilter</filter-name>
    <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题