大家都知道在java.net.*包中提供了两个用于URL编码和解码的类:URLEncoder和URLDecoder,分别对应方法encode(String, Charset)和decode(String,Charset),另外的encode(String)和decode(String)由于在不同平台的不一致性与java的“一次编译,随处运行”的原则相悖,因此已过时而被在不同平台一致性更好的encode(String, Charset)和decode(String,Charset)所取代。一般情况下在指定Charset参数时,按照JDK文档规范应该使用UTF-8编码,这是由于该编码是目前www的标准编码,可以保证平台无关性。
      而在Web开发过程中,经常会用到javascript的内置函数encodeURI、decodeURI或encodeURIComponent、decodeURIComponent。它们是成对的,功能也是刚好相反的。但是带有‘Component’的编码和解码函数与不带‘Component'的函数有什么区别呢?下面看一下简单的测试用例: