js中的程序是            window.open('printOrderInput.action?orderNo='+orderNo,'打印信息');       其中变量orderNo中包含中文的时候在程序中通过 request.getParameter("orderNo");得到的值中包含乱码       请大家帮帮忙,有什么方法可以解决这个问题?

解决方案 »

  1.   

    先进行url编码!  encodeURI() 
      

  2.   

    String orderNo = new String(request.getParameter("orderNo").getBytes("ISO-8859-1"), "GBK");
      

  3.   

    window.open('printOrderInput.action?orderNo='+<%=UrlEncoder.encode(orderNo,"GBK")%>,'打印信息');
      

  4.   


    String a= new String(request.getParameter("orderNo").getBytes("ISO-8859-1"), "UTF-8"); UTF-8比GBK好多了。所以提取链接的字符都是UTF-8。
    LZ可以试试。百分百正确。
      

  5.   

    也可以配置几个地方避免乱码;
    1 页面中 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />这里的编码要统一。
    2 tomcat 的 server.xml中 <Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>这一样 加上红色标记部分。然后你的工作区默认的编码也要弄成 utf-8 避免在打印时出现乱码。
      

  6.   

    两种方法
    1、服务器端进行转码,如request.getParameter("orderNo").getBytes("ISO-8859-1"), "GBK");
    2、把web服务器,如tomacat的URLEncoding=gbk
      

  7.   

    这个订单号怎么可能有中文呢,如果是字母和数字的话,应该不会有乱码的呀!
    如果真的有中文的  像这种方式传递参数的时候  记得一定要用base64编码传值,那样绝对是不会出现你这种情况的
      

  8.   

    encodeURI() 
    encodeURI() 两次,一次好像不好用