<a href="http://192.168.1.163/ProductList.do?pageSize=40&amp;Keywords=马可波罗&amp;OrderBy=sellcount0-string&amp;IsAsc=false&amp;page=1">40</a>点击进入后台后,Keywords参数接收的乱码,String strKeyword = request.getParameter("Keywords");strKeyword乱码的值是:Âí¿É²¨ÂÞ这个该怎么处理?

解决方案 »

  1.   


    把Keywords参数在前台用JS编码一下encodeURI!
    a标签的href改为:href="javascript: functionName()"
    JS代码:
    function functionName(){
        var d = "马可波罗";
        var url = "http://192.168.1.163/ProductList.do?pageSize=40&amp;Keywords="+encodeURI(d)+"&amp;OrderBy=sellcount0-string&amp;IsAsc=false&amp;page=1";
        window.location.href = url ;
    }后台:
    //后台action或者servlet这样转码获取   
    String Name=new String(URLDecoder.decode(request.getParameter("name"),"utf-8"));[/color] 
      

  2.   

    keyword=encodeURI('马可波罗')  试试
      

  3.   

    抱歉:request.getParameter("name")
    改为:request.getParameter("Keywords")
    LZ祝你好运!
      

  4.   

    接收参数时进行转码String s=new String(s.getBytes("GBK"),"UTF-8");
      

  5.   

    String s=new String(s.getBytes("GBK"),"UTF-8"); 
    这个方法很好
    只有在极其特殊的情况下不会成功
      

  6.   

    Keywords=encodeURIComponent('马可波罗')
      

  7.   

    a链接默认的是get提交 即时外面有个form表单是post 
    我也遇到过这样的问题 我是点击下一页的时候需要传中文 行不通 我就换了这个方法:
    <form id="form"  action="ArticleServlet?action=SearchNews&page=${page}" method="post">
    <input name="key" id="key" type="hidden" value="马可波罗" />
    <div id="MianBtNr" >
    <a href="javascript:document:form.action='ArticleServlet?action=SearchNews';form.submit();"><img src=../images/page_top.gif border=0 align=absmiddle></a>
    <c:if test="${page>1}">
    <a href="javascript:document:form.action='ArticleServlet?action=SearchNews&page=${page-1}';form.submit();"><img src=../images/page_pv.gif  border=0 align=absmiddle /></a>
    </c:if>
    <c:if test="${page<allpage}">
    <a href="javascript:document:form.action='ArticleServlet?action=SearchNews&page=${page+1}';form.submit();" ><img src=../images/page_next.gif border=0 align=absmiddle></a>
    </c:if>
    <a href="javascript:document:form.action='ArticleServlet?action=SearchNews&page=${allpage}';form.submit();"><img src=../images/page_end.gif border=0 align=absmiddle></a>
    共${allpage}页   当前第${page}页
    </div>
    </form>
      

  8.   


    还是不行,
    按照你的那个 后台
    String strKeyword = request.getParameter("Keywords");
    收到的是  é©¬å¯æ³¢ç½
    String Name=new String(URLDecoder.decode(request.getParameter("Keywords"),"utf-8"));
    这个收到的是!
    马可波ç½怎么回事,唉。。
      

  9.   


    还是不行,
    按照你的那个 后台
    String strKeyword = request.getParameter("Keywords");
    收到的是  é©¬å¯æ³¢ç½
    String Name=new String(URLDecoder.decode(request.getParameter("Keywords"),"utf-8"));
    这个收到的是!
    马可波ç½怎么回事,唉。。
      

  10.   

    在Web容器的server.xml文件中找到下面的节点、加上编码 URIEncoding="UTF-8"
    <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" URIEncoding="UTF-8"/>
      

  11.   

    正解
    因为超链接提交是get方式提交,用一般的过滤器也没用,通过配置应用服务器的配置文件,告诉它传递参数的时候用utf-8编码即可。
    如果想不修改服务器的配置文件,那么可以通过后台代码重新编码然后解码进行转换:
    String Name=new String(request.getParameter("Keywords").getBytes(),"utf-8"));
      

  12.   

    你的提交方式是什么 ? 看一下form
      

  13.   


    如果你form用的是post提交,
    那么先设置下request.setCharacterEncode('gbk');
    如果是get提交,
    那么在server.xml文件里面,
    <Connector port="8080"....(最后面添加)URIEncoding="gbk" />
    编码字符你自己看是设置utf-8还是gbk
      

  14.   

    我自己整理的
    http://download.csdn.net/detail/lin5ting/4855766
    解决乱码问题的,重jsp和数据库和浏览器之间的都解决了。你的我看就去改servlet.xml的配置把,URIEncoding="UTF-8"。就像14写的那样
      

  15.   

    String s=new String(s.getBytes("ISO-8859-1"),"UTF-8");转一下 最好把你页面编码和 后台request编码设置下,还有一个最重要的,<a>标签是get形式的请求,get形式的请求一定要把tomcat的编码也设置一下!
      

  16.   

    页面中加入:
    <%@ page contentType="text/html; charset=GBK" %>
    后台获得之前加编码处理:
    request.setCharacterCode("GBK");