解决方案 »

  1.   

    服务器断,用UTF-8解码。response.setcontenttype(“text/html;charset=utf-8”)
      

  2.   

    tomcat默认用iso8859-1解码,而你传过来的值是utf8 编码的,当然会乱码
      

  3.   


    你指这两行吗?
    自己寻得的方法,在tomcat的server.xml设置下<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>我也不清楚,之前没碰见过这样的情况,所以搜索出来的。
    第2行意义不大,我看介绍上面是和SSL有关的。第一行是和无SSL有关。在这次之前,我确实没有遇到这样的问题,因为在GET时从来没尝试过明文汉字,似乎浏览器都会直接编码一次,但是在学习JAVA之后就没太在意这个事情,而且之前学习的WEB项目也都没有这样的问题,我自己觉得问题可能在这里,但是网上查阅到的修改TOMCAT也同样起到结果了,所以才发问
      

  4.   

    问题解决了,虽然很还不是全面理解但是综合上面各位的提示明白了点实际情况。
    String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
    System.out.println(name);
    tomcat默认用iso8859-1解码,这个是正解。虽然提交页是utf-8,虽然接收表单对request设置编码utf-8
    但在具体的名值对没起效,这点是我很不理解的。
    但是对一个值进行转码后确实看到了,即使明文汉字提交也没问题的。