Java中的UrlDecoder和UrlEncoder_动力节点Java学院整理

  

  

HTML格式编码的实用工具类。该类包含了将字符串转换为应用程序/x-www-form-urlencoded MIME格式的静态方法。有关HTML格式编码的更多信息,请参阅HTML规范只

  

对字符串编码时,使用以下规则:,

  

字母数字字符“a”到“z”,“一个”到“z”和“0”到“9”保持不变只

  

特殊字符“。”“-”,“*”和“_”保持不变只

  

空格字符”“转换为一个加号“+”只

  

所有其他字符都是不安全的,因此首先使用一些编码机制将它们转换为一个或多个字节。然后每个字节用一个包含3个字符的字符串“% xy”表示,其中xy为该字节的两位十六进制表示形式。推荐的编码机制是utf - 8。但是,出于兼容性考虑,如果未指定一种编码,则使用相应平台的默认编码只
  

  

例如,使用utf - 8编码机制,字符串字符串u@foo-bar”将转换为“+线+ % C3%BC % 40 foo bar”,因为在utf - 8中,字符u编码为两个字节,C3(十六进制)和BC(十六进制),字符@编码为一个字节40(十六进制)只

  

  

该类包含了将字符串从应用程序/x-www-form-urlencoded MIME格式解码的静态方法只

  

该转换过程正好与URLEncoder类使用的过程相反,假定已编码的字符串中的所有字符为下列之一:“一个”到“z”,“一个”到“z”,“0”到“9”和“-”、“_”、“。”以及“*”。允许有“%”字符,但是将它解释为特殊转义序列的开始只

  

转换中使用以下规则:,

  

字母数字字符“a”到“z”,“一个”到“z”和“0”到“9”保持不变只

  

特殊字符“。”“-”,“*”和“_”保持不变只

  

加号“+”转换为空格字符”“只

  

将把“% xy”格式序列视为一个字节,其中xy为8位的两位十六进制表示形式,然后,所有连续包含一个或多个这些字节序列的子字符串,将被其编码可生成这些连续字节的字符所代替。可以指定对这些字符进行解码的编码机制,或者如果未指定的话,则使用平台的默认编码机制只

  

该解码器处理非法字符串有两种可能的方法。一种方法是不管该非法字符,另一种方法是抛出IllegalArgumentException异常,

  

简单示例:

  

Java代码,,

        尝试{   字符串encodeStr=URLEncoder。编码(“中国”,“utf - 8”);   system . out。println(“处理后:“+ encodeStr);   字符串decodeStr=URLDecoder.decode (encodeStr“utf - 8”);   system . out。println(“解码:“+ decodeStr);   }捕捉(UnsupportedEncodingException e) {//TODO自动生成的catch块   e.printStackTrace ();   }      

运行结果:

  

Java代码,,

        处理后:% % BD E4%B8%AD % E5 % 9 b   解码:中国

Java中的UrlDecoder和UrlEncoder_动力节点Java学院整理