以下是在页面属性中得到的URL:
http://127.0.0.1:8080/jsp/systemSetting/userQueryResult.jsp?querySql=unitName+%3D%27%CE%F7%B0%B2%B4%F3%CC%C6%B5%E7%D0%C5%D3%D0%CF%DE%B9%AB%CB%BE%27但是当我用request.getParameter("querySql")来获得querySql这个参数值时候,却不是属性中的值,得到的结果如下:
unitName ='?÷°??ó??????????????'
怎么会是这样啊,请各位帮帮忙啊,
谢谢谢谢

解决方案 »

  1.   

    过是通过GET方法传递的参数如:url ../test.jsp?v=汉字
    的话  应该把汉字转化成 UTF-8的编码在传过去[URLEncoder.encode("汉字","GB2312")]
    取的时候在转化回来[URLDEcoder.decode("汉字","GB2312")
    如果是tomcat的话 在server.xml 的
    <Connector 
    port="8080" 
    中加入
    URIEncoding="GB2312"
    最好在写个 过滤器
      

  2.   

    楼上的,属性中的字符串就是经过URLEncoder.encode()编码后得到的,但是在用request.getParameter("querySql")后,得到的与属性中的不一样啊,而且里面也没有中文啊???
      

  3.   

    通过URLEncoder.encode转一下
    URLEncoder.encode("汉字","GB2312")
      

  4.   

    String a="unitName+%3D%27%CE%F7%B0%B2%B4%F3%CC%C6%B5%E7%D0%C5%D3%D0%CF%DE%B9%AB%CB%BE%27";
    System.out.println("tp->"+java.net.URLDecoder.decode(a));
    --->
    tp->unitName ='西安大唐电信有限公司'
      

  5.   

    参数经过utf8编码了,你解码就行了
      

  6.   

    经过测试,我是这么解决的:连续两次对还有中文的字符串querySql进行编码
    即:
    querySql=URLEncoder.encode(querySql,"GB2312");
    querySql=URLEncoder.encode(querySql,"GB2312");
    一次编码不行,呵呵,胡乱试试出来的,但是不知道为什么,希望那位高手出来解释以下啊!!
      

  7.   

    解码时只需解一次就行了,但是不懂why?