问题如下: 
<a href="puton.jsp?IId=${article.IId}&IName=${article.IName}&IPrice=${article.IPrice}">上架</a>
通过这种方式传递的三个参数,其中有一个参数的值是中文,如果中文的个数为奇数个时传过去的这个中文参数的最后一个汉字就为乱码,如果是偶数个就没有问题。请问这个问题如何解决,

解决方案 »

  1.   

    一、正常POST方法传参: 
    页面a.jsp 
    <%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"%> 
    </head> 
    <FORM METHOD=POST ACTION="/webtest/b.jsp"> <INPUT TYPE="text" > 
    <INPUT TYPE="submit"> </FORM> 
    </html> 
    页面b.jsp 
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"%> 
    </head> 
    <% 
    request.setCharacterEncoding("UTF-8"); 
    String strParm = request.getParameter("parm"); 
    out.println(strParm); 
    %> 
    </html> 
    没有任何问题。 二、Form里面用GET方法传参时转换问题的解决方法: 
    页面a.jsp 
    …… 
    <FORM METHOD=GET ACTION="/webtest/b.jsp"> <INPUT TYPE="text" > 
    …… 
    页面b.jsp 
    …… 
    String strDisplay = new String(strParm.getBytes("ISO8859-1"), "UTF-8"); 
    out.println(strDisplay); 
    …… 
      

  2.   

    你的问题其实跟这个问题其实是一样的。
    http://topic.csdn.net/u/20091115/06/527e7c6e-8915-46be-bf49-ec2f2ac2b3fd.html
      

  3.   

    先看看服务器url 编码是什么吧 如果都是UTF-8 就没问题,如果不是需要从iso-88951转 到utf-8
      

  4.   

    支持三楼。。最好的办法就是加过滤器的同时也加String(sql.getBytes("gbk"),"ISO-8859-1"); 
    new String(sql.getBytes("ISO-8859-1"),"gbk"); 就ok了!
      

  5.   

    new String(s.getBytes("ISO-8859-1"),"GBK")