在Java中如果要完成URL的编码和解码操作,可以使用URLEncoder和URLDecoder两个类,URLEncoder可以为传递的内容进行编码,而URLDecoder可以为传递的内容进行解码。这两个类常用的方法如下。
| 序号 | URLEncoder类常用方法 | 描述 | 
| 1 | public static String encode(String s, String enc) | 使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式。 | 
| 序号 | URLDecoder类常用方法 | 描述 | 
| 1 | public static String decode(String s, String enc) | 使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码。 | 
| 实例:编码和解码操作 |  |  | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 
 | package my.net.encoder_decoder;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.net.URLEncoder;
 
 public class Encode_Decode
 {
 public static void main(String[] args) throws UnsupportedEncodingException
 {
 String urlStr = "file:///D:/dev/workspace/Net/%E4%B8%8A%E4%B8%80%E7%AF%87%E5%8D%9A%E5%AE%A2.html";
 String urlDecoder = URLDecoder.decode(urlStr, "utf-8");
 
 String urlEncoderutf8 = URLEncoder.encode(urlDecoder, "utf-8");
 System.out.println("原字符串                :"+urlStr);
 System.out.println("解码后的字符串     :"+urlDecoder);
 System.out.println("重新编码为utf-8:"+urlEncoderutf8);
 System.out.println("再次解码                :"+URLDecoder.decode(urlEncoderutf8, "utf8"));
 System.out.println();
 }
 }
 
 | 
运行结果:
| 12
 3
 4
 5
 
 | 原字符串       :file:///D:/dev/workspace/Net/%E4%B8%8A%E4%B8%80%E7%AF%87%E5%8D%9A%E5%AE%A2.html解码后的字符串  :file:///D:/dev/workspace/Net/上一篇博客.html
 重新编码为utf-8:file%3A%2F%2F%2FD%3A%2Fdev%2Fworkspace%2FNet%2F%E4%B8%8A%E4%B8%80%E7%AF%87%E5%8D%9A%E5%AE%A2.html
 再次解码       :file:///D:/dev/workspace/Net/上一篇博客.html
 
 
 | 
中文转为Unicode字符
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | String str = "中文";try
 {
 String encodeStr = URLEncoder.encode(str, "utf-16be");
 encodeStr = encodeStr.replaceAll("%(.{2})%(.{2})", "\\\\u$1$2");
 System.out.println(encodeStr);
 } catch (UnsupportedEncodingException e)
 {
 
 e.printStackTrace();
 }
 
 | 
运行结果: