请问 我在 jsp 页面 里 用 
<a href="/Course.do?method=findByCourseId&courseName=${CourseStat.courseName }">${CourseStat.courseName }</a>
传值 在 action 里 转码
String courseName = request.getParameter("courseName");
try {
String strcourseName = new String(request.getParameter("courseName").getBytes("ISO-88591"),"UTF-8");
       System.out.println("------------"+strcourseName+" ---------");
request.setAttribute("courseName", strcourseName);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
    }
打印的时候 为什么 奇数个数的 字符串 最后一个字节是乱码 而偶数个数的就没有乱码啊 ?
 String str = URLEncoder.encode(request.getParameter("courseName"),"UTF-8"); 我也用过了 还是没解决
请问 那位有办法啊 谢谢了。

解决方案 »

  1.   

    你的 java文件, jsp 文件的编码格式是不是 utf8的?
      

  2.   

    jsp页面的字符集也要改成utf-8看看
      

  3.   

    改成下面:
    String strcourseName = new String(request.getParameter("courseName").getBytes("UTF-8"),"UTF-8");或者试试:
    String strcourseName = new String(request.getParameter("courseName").getBytes("GB2312"),"UTF-8");
      

  4.   

    String strcourseName = new String(request.getParameter("courseName").getBytes("ISO-88591"),"UTF-8"); 改为:String strcourseName = new String(request.getParameter("courseName").getBytes("ISO-8859-1"),"UTF-8"); 
      

  5.   


    jsp执行这句,生成的html是什么,正常吗?
      

  6.   

    可以在jsp页面中把参数进行转码操作,再进行传递,用encodeURIComponent(参数值)试下,
    如果不行,在action进行转码再试下。String courseName= new String(request.getParameter("courseName").getBytes("iso-8859-1"),"UTF-8");
      

  7.   

    <c:set var="str" value="${aaa}" scope="page"></c:set>
    <a href="user.jsp?bbb=<%=URLEncoder.encode(pageContext.getAttribute("str").toString(),"UTF-8") %>" >
    就可以了。