a.asp?TName=%5B5f20%5D%5B5b81%5D09
如上其实中文是TName=张宁09

解决方案 »

  1.   

    a.asp?TName=%5B5f20%5D%5B5b81%5D09 
    是怎么来的?
      

  2.   

    这个是正常的啊,你直接用request.getParameter()旧可以得到!
      

  3.   

    这是一个编码的问题,在JDK中用两个类专门用来做这种的编码和解码;
    例:
           String str = "c%3A%5C%Documents+and+settings%5chhy%5c%D7%c0%c3%e6%5cn07ICE.txt";
         
    上面变量中就是已经编码过的,如果需要解码,就可以用JDK的URLDecoder.decode(String s, String enc) 进行解码
    解码后的结果为:c:\Documents and settings\hhy\桌面\NOTICE.TXT如果需要编码可以用decode(String s) 方法
      

  4.   


    这个编码好像有问题呢,问一下,这是什么编码?如何从“张宁09”得到“%5B5f20%5D%5B5b81%5D09”的啊?
      

  5.   

    昨天一着急发错了一个类一下代码我是进行测试过的:
    //进行编码
    String str = "d:\\张宁09"; 
    String obj = URLEncoder.encode(str);
    System.out.println(obj);

    //d:\\张宁09  编码后的结果为:d%3A%5C%D5%C5%C4%FE09

    //进行解码
    String str1 = "d%3A%5C%D5%C5%C4%FE09"; 
    String obj1 = URLDecoder.decode(str1);
    System.out.println(obj1);

    //d%3A%5C%D5%C5%C4%FE09   解码后的结果;
      

  6.   

    应该通过以下编码转化可以获取到所要的内容:
    String strName = new String(request.getParameter("TName").getBytes("ISO-8859-1"),"UTF-8");
      

  7.   

    转化很简单。System.out.println(java.net.URLEncoder.encode("楼主")); 
    这样就可以,看下结果就明白了。获取的时候跟平时一样,不需要什么特殊操作。
      

  8.   

    刚看到个帖子,也是同类问题,已经解决了。楼主可以参考下。如果有问题可以私信楼主。谁能讲一讲关于jsp的地址栏传中文参数到底是如何编码的?
      

  9.   

    其实,这个编码是unicode 的: [张][宁]09
    %5B5f20%5D%5B5b81%5D09
    注意汉字部分是低低高高的顺序
    %5B  [
    5f20 张
    %5D  ]
    %5B  [
    5b81 宁
    %5D  ]
    09   09
      

  10.   

    确切的说是被包装过的编码.高位 | 低位
    ------------------
    5f  |  20  '张' 的 unicode 值( 直接的 )5b  |  81  '宁' 的 unicode 值
      

  11.   

    你可以这样测试,来获得结果.
    out.println( "\u5f20\u5b81" );