function rollFunc(){ 
var comment = document.all.comment.value; 
if(comment.length <1){   
   return; 
}else{
 alert(comment); 
 window.location="${ctx}/attendant/Edit/untread.do?id=${Entry.id}&status=${status}&comment="+comment; 

}当comment是中文时,传入action时
String comment = request.getParameter("comment"); 
这样得出的comment是乱码,应该怎么转码啊

解决方案 »

  1.   

    javascript:
      转码escape(charstring);
      解码unescape(charstring);
      

  2.   

    只是在action里进行转码是不行的,你首先需要在页面上对参数进行编码,然后在action里对得到的参数进行相应的解码。
      

  3.   

    发表于:2008-06-02 11:41:143楼 得分:0 
    只是在action里进行转码是不行的,你首先需要在页面上对参数进行编码,然后在action里对得到的参数进行相应的解码。 
      

  4.   

    String comment = request.getParameter("comment"); comment = new String(comment.getBytes("ISO-8859-1"));
      

  5.   

    request.setCharacterEncoding("gb2312");
    在获取参数的页面加这句话就可以了吧?
      

  6.   

    楼上的看我的
    这我做多了。
    先对js中的中文进行编码
    然后到action去解码就可以了
    具体实现
    js编码
    var comment = document.all.comment.value; 
    comment  = encodeURI(comment );
    comment = encodeURI(comment );//注意要两次action解码
    String comment = request.getParameter("comment ");
    try {
    comment = java.net.URLDecoder.decode(comment, "utf-8");
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    }
    楼主要给我分哦   在给我两分我专家分就满百了谢谢了
      

  7.   

    谢谢 weiweichen  能否告知一下 为什么要两次 comment  = encodeURI(comment ); 
      

  8.   

    str  = new String(str.getBytes("iso-8859-1"),"utf-8");
      

  9.   

    str = new String(str.getBytes("iso-8859-1"),"utf-8");这个是正解,我搞下就OK了······