本人不才,写JAVA web程序一年,居然还不知道这个两个的具体用途,在网上也搜过,
也看过JDK帮助文档,自己也做过测试,也大致知道一些关于 URLEncoder是对字符编码,
URLDecoder是对字符进行解码:
1.大写字母A-Z
2.小写字母a-z
3.数字 0-9
4.标点符 "."  "-"  "*"  and "_"
 不会被编码,是安全的,
我就搞不懂,它们所指别的字符的都是不安全的,究竟是哪不安全,能不能举个例子??
另外,这种编码解码在WEB开发中,有什么意义,能不能举个例子?请高手赐教,问题解决即结分!

解决方案 »

  1.   

    用get方法传递中文时,必须经过编码的动作.进行编码时必须使用java.net套件中的URLEncoder类型的encode类别方法,其语法:java.net.URLEncoder.encode(字符串)
    即:response.sendRedirect("err.jsp?msg"+java.net.URLEncoder.encode("乱码"))  
    不过最好用变量而不要直接用中文:response.sendRedirect("err.jsp?msg="+vmsg);
      

  2.   

    举个简单例子:
    text = "abcd";url = "a.jsp?text="+text;
    这样没有问题但是当text = "abcd&edf";  这样url就是"a.jsp?text=abcd&edf"
    request.getParameter就获得abcd,剩余的就解析为另外一个参数edf
    所以需要对符号"&"编码
      

  3.   

    TO: fosjos(无聊的菜鸟程序员), 我试过了,果然有你说这种情况,非常感谢!  另外,大家还有没有别的方面的例子,请高手们继续赐教,谢谢!
      

  4.   

    就是把URL里的中文转成了ascii码,后面接到这个参数时还转换呗,用过,好像是这样
    关注
      

  5.   

    小弟也和楼主一样。今日刚好碰到了此问题,经过几小时,了解了一些。String value1="123&中文";
    String enc="UTF-8";
    String url="Http://localhost:8080/forum.jsp?id="+URLEncoder.encoder(value1,enc);如果没有进行URL编码,getParameter("id")的值为 "123";另外,假设服务器的Http URL encoding 是"UTF-8", 而value1中含有中文。
    那么,enc 也要是UTF-8。才能正确显示中文。
      

  6.   

    http://www.javanb.com/java/1/17391.html