UrlDecoder 和 UrlEncoder
一 URLEncoder
HTML 格式编码的实用工具类。该类包含了将 String 转换为 application/x-www-form-urlencoded MIME 格式的静态方法。有关 HTML 格式编码的更多信息,请参阅 HTML 规范。
对 String 编码时,使用以下规则:
字母数字字符 \"a\" 到 \"z\"、\"A\" 到 \"Z\" 和 \"0\" 到 \"9\" 保持不变。 特殊字符 \".\"、\"-\"、\"*\" 和 \"_\" 保持不变。 空格字符 \" \" 转换为一个加号 \"+\"。
所有其他字符都是不安全的,因此首先使用一些编码机制将它们转换为一个或多个字节。然后每个字节用一个包含 3 个字符的字符串 \"%xy\" 表示,其中 xy 为该字节的两位十六进制表示形式。推荐的编码机制是 UTF-8。但是,出于兼容性考虑,如果未指定一种编码,则使用相应平台的默认编码。
例如,使用 UTF-8 编码机制,字符串 \"The string ü@foo-bar\" 将转换为 \"The+string+%C3%BC%40foo-bar\",因为在 UTF-8 中,字符 ü 编码为两个字节,C3 (十六进制)和 BC (十六进制),字符 @ 编码为一个字节 40 (十六进制)。
二 URLDecoder
该类包含了将 String 从 application/x-www-form-urlencoded MIME 格式解码的静态方法。
该转换过程正好与 URLEncoder 类使用的过程相反。假定已编码的字符串中的所有字符为下列之一:\"a\" 到 \"z\"、\"A\" 到 \"Z\"、\"0\" 到 \"9\" 和 \"-\"、\"_\"、\".\" 以及 \"*\"。允许有 \"%\" 字符,但是将它解释为特殊转义序列的开始。 转换中使用以下规则:
字母数字字符 \"a\" 到 \"z\"、\"A\" 到 \"Z\" 和 \"0\" 到 \"9\" 保持不变。 特殊字符 \".\"、\"-\"、\"*\" 和 \"_\" 保持不变。 加号 \"+\" 转换为空格字符 \" \"。
将把 \"%xy\" 格式序列视为一个字节,其中 xy 为 8 位的两位十六进制表示形式。然后,所有连续包含一个或多个这些字节序列的子字符串,将被其编码可生成这些连续字节的字符所代替。可以指定对这些字符进行解码的编码机制,或者如果未指定的话,则使用平台的默认编码机制。
该解码器处理非法字符串有两种可能的方法。一种方法是不管该非法字符,另一种方法是抛出 IllegalArgumentException 异常
简单示例: Java代码 1. 2. 3. 4. 5. 6. 7. 8. try { String encodeStr = URLEncoder.encode(\"中国\", \"utf-8\"); System.out.println(\"处理后:\" + encodeStr); String decodeStr = URLDecoder.decode(encodeStr, \"utf-8\"); System.out.println(\"解码:\" + decodeStr); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); 1 / 2
9. 运行结果: Java代码 1. 2. 处理后:%E4%B8%AD%E5%9B%BD 解码:中国 } 本文作者:asflex
2 / 2
因篇幅问题不能全部显示,请点此查看更多更全内容