楼主说的以上两种方式都是针对post请求才有效果。,如果是post, 是不是和页面编码不统一,,如果不是,可以new String(request.getParameter("").getBytes("iso-8859-1","gb2312"));
或者修改tomcat 配置server.xml  加上 URIEncoding="gb2312"  。

解决方案 »

  1.   

    楼主的若是jsp文件,可以这样<%@ page contentType=text/html;charset=gbk"pageEncoding="utf-8"%>
    你试试看,看能否解决乱码问题
      

  2.   

    如果容器是tomcat,配置下它的配置文件/conf/server.xml修改下
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443"/>
      
    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="UTF-8"/>
    规定容器的uri编码试试
      

  3.   

    就这个。您是不是,用的ajax中间传值啊。如是这样的话 。你所写的那两个 控制不住ajax的编码。。用这个
      

  4.   

    修改服务器的xml,  URIEncoding, 跟项目编码一致
      

  5.   

    在web.xml中启动过滤器<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>gb2312</param-value></init-param></filter>这个过滤器正对post方法 get方法不会进行过滤。这样所有的页面post请求都会被过滤。不用每次请求都去写一个编码转换。
      

  6.   

    1. 一定要编码统一
    2. 是否用的是2.1.6之前的版本
         I、是。自己手动写一个Filter,在doFilter方法中改变编码,然后调用FilterChain的doFilter方法,然后将Filter配置到web.xml文件中,一定要将它配置到struts2核心控制器的前面,保证在执行struts2核心控制器前先改变编码。
         II、不是,那么改变常量配置应该就可以了
      

  7.   

    数据库,工程,jsp,java文件,tomcat统一设置一种编码,不过一般都是设置的utf-8,如果编写了过滤器还解决不了。那就可能是你的struts2的jar出现了问题。换成2.1.8吧,2.1.6有bug的。
    或者像下面这样做,这是我遇到的情况。
    web.xml:
    <filter>
      <filter-name>struts2</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
     </filter>
    改成:<filter>
      <filter-name>struts2</filter-name>
      <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
     </filter>
    第一种配置是struts2高版本的,如果要使用2.1.6就用下面这个配置。希望能帮到你!
      

  8.   

    String fileName = request.getParameter("fileName").getBytes("iso-8859-1","gb2312");为何我这样就一直报错?
    String fileName = request.getParameter("fileName").getBytes("iso-8859-1");这样也是报错,错误显示不能new String,而是要new Byte[]?大神能教教不?
      

  9.   

    String fileName = request.getParameter("fileName").getBytes("iso-8859-1","gb2312");为何我这样就一直报错?
    String fileName = request.getParameter("fileName").getBytes("iso-8859-1");这样也是报错,错误显示不能new String,而是要new Byte[]?大神能教教不?
    无码无真相
      

  10.   

    new String(oldString.getBytes(oldEncoding),newEncoding)
      

  11.   

    String fileName = request.getParameter("fileName").getBytes("iso-8859-1","gb2312");为何我这样就一直报错?
    String fileName = request.getParameter("fileName").getBytes("iso-8859-1");这样也是报错,错误显示不能new String,而是要new Byte[]?大神能教教不?你这个没有加异常处理吧,这个编码方式的转换需要处理异常的
      

  12.   

    俩种方式 一种如pengli500所有,但是如果你是eclipse启动的tomcat 需要在eclipse中的servers中的server,xml修改因为他每次会重置tomcat, 第二种就是encodeURI("str")加密  后台接收后用 URLDecoder.decode("str", "UTF-8")解密