jsp乱码问题 (主要关于奇数乱码 偶数正常)

来源:互联网 发布:二炮有多厉害知乎 编辑:程序博客网 时间:2024/06/01 08:52

  下午做程序,突然发现从前台传参到后台总是出现乱码问题,按照网上的解决了一下,还是不能正常运行。而且比较奇怪的是在文本框输入一个字,乱码;两个字,正常;三个字,乱码;。。。。。。这就是我们所说的奇数乱码,偶数正常,解决过程实在是令人崩溃,折腾了一个下午。

   解决方法:这里首先把情况描述一下,假设有a.jsp、b.jsp页面和Test.class类,a页面有姓名文本框,b页面接收a页面提交的参数,在b页面有代码块调用Test类的方法,完成查询。

  如何解决呢?

    首先,把a页面的编码格式设置为gbk,在代码块中设置为utf-8,即:request.setCharacterEncoding("utf-8");,在b页面同样进行此操作。

    然后,b页面接收a页面的参数,即:String name = request.getParameter("name"); ,比较关键的一步来了,这个时候要进行转码处理,即

name = URLEncoder.encode(name,"utf-8"); ,然后调用Test类的doTest(name)方法,第二步结束。

    最后,在后台Test类的doTest(name)方法中,进行解码,即:URLDecoder urlDecode = new URLDecoder();
name = urlDecode.decode(name,"utf-8");,这个时候乱码基本上就搞定了。


注:大致的思路是这样,具体的请参考自己的程序作相应修改。

原创粉丝点击