在jsp中的text中输入中文,然后在action中,我对scanser参数通过下面的方式进行编码,
         try {
     scer = new String(scanser.getBytes("gbk"), "UTF-8")
         } catch (UnsupportedEncodingException e) {
     e.printStackTrace();
}
当jsp中的text输入的是两个或两个以上的中文时,能够正确编码;而当在text中输入只有单个的中文时(例:‘乱’),则无法编码成功,out.print时是空白的;各位高手看看是什么情况啊?谢谢了

解决方案 »

  1.   

    在JSP中最顶部把charset=iso-9959改为charset=utf-8就可以了
      

  2.   

    楼上的兄弟,我的那个jsp设的是gb2312而且jsp页面上有些控件也是统一了这个编码的,要改动这个编码的话比较麻烦,我就想有没有其他的解决方案?
    谢谢了
      

  3.   

    中文乱码最讨厌
    1.表单提交一律post
    2.所有页面编码格式gb2312
    3.过滤器过滤所有请求、响应编码格式gb2312
    4.实在不行 用String的getBytes("gb2312")转一下 
      

  4.   

      转码方式不对吧!  其实应该首先统一编码!  推荐楼主全部改成utf-8的形式!
      

  5.   

    两处对应,
    页面里的encoding跟scanser.getBytes()的参数一致。
    IDE的encoding与new String的第二个参数一致。
      

  6.   


    支持8楼的看法。楼主的代码可改为:
    try   {
              scer   =   new   String(scanser.getBytes( "gb2312"),   "UTF-8 ");
    }   catch   (UnsupportedEncodingException   e)   {
              e.printStackTrace(); 
    }
      

  7.   

    在struts.xml中添加<constant name="struts.i18n.encoding" value="GBK"></constant> 代码
      

  8.   

    加一个过滤器,设置request编码。     HttpServletRequest httprequest = (HttpServletRequest)request;
            httprequest.setCharacterEncoding(this.encoding);
            chain.doFilter(request, response);
      

  9.   

    out.println();?时不时使用的AJAX?
    jsp:   url = encode(url);
    action:   response.setCharacterEncoding("UTF-8");
              response.setContentType("text/html;charset=UTF-8");          返回来的字符
               str.getBytes("页面字符编码","UTF-8");这些处理完了以后,应该是可以的========
      

  10.   

    全方位乱码解决方法:http://blog.csdn.net/wula0010/archive/2009/02/27/3942321.aspx
      

  11.   

    可以写个中文处理的方法,提交过来的内容调用这个方法,如下是中文处理的方法:
     public String getSting(String str)
     { //中文处理
     if(str==null)
     {str="";
    }
    else
     {try
     {byte[]b=str.getBytes("ISO-8859-1");
     str=new String(b);
     }
    catch(UnsupportedEncodingException e){
     e.printStackTrace();
    }
    }
    return str;
    }
       比如说你的表单名字是name,
    那么name=getString(name);
    这样应该就不会出现乱码了!