关于URLEncoder的编码和URLDecode解码

来源:互联网 发布:淘宝开店卖什么好一点 编辑:程序博客网 时间:2024/06/04 20:01
在我们开发中,很多时候会遇见各种编码乱码的问题,其实这都是编码不一致的问题,如果你懂得了关于URLEncoder的编码和URLDecode解码,那么问题就会随之消失!

下面我们看看关于编码的代码:

 

 

[java] view plaincopy
  1. package com.zhagnke.test;  
  2.   
  3. import java.beans.Encoder;  
  4. import java.net.URLDecoder;  
  5. import java.net.URLEncoder;  
  6.   
  7. /** 
  8.  * 关于URLEncoder的编码和URLDecode解码 
  9.  * @author spring sky 
  10.  * QQ 840950105 
  11.  * Email vipa1888@163.com 
  12.  * My name:石明政 
  13.  * 
  14.  */  
  15. public class EncodeUtil {  
  16.     public static void main(String[] args)throws Exception {  
  17.         /** 
  18.          * 编码 
  19.          *  * 如果字符a-z A-Z 0-9 或者_ ,他们不会被编码 
  20.          */  
  21.         String str1 = "abcdefghijklmnopqrstyvwxyz";  
  22.         String str1_1 = URLEncoder.encode(str1, "utf-8");  
  23.         System.out.println("str1_1="+str1_1);  
  24.         /** 
  25.          * 编码 
  26.          *  * 非字符a-z A-Z 0-9 或者_ ,他们被编码 
  27.          */  
  28.         String str2 = "中国人民共和国";  
  29.         String str2_2 = URLEncoder.encode(str2, "utf-8");  
  30.         System.out.println("str2_2="+str2_2);  
  31.         System.out.println("----------------------------------");  
  32.         /** 
  33.          * 解码 
  34.          *  
  35.          */  
  36.           
  37.         URLDecoder ud = new URLDecoder();  
  38.         System.out.println(ud.decode(str1, "utf-8"));  
  39.         System.out.println(ud.decode(str2, "utf-8"));  
  40.           
  41.         System.out.println("-----------------------------------");  
  42.         /** 
  43.          * 解码 
  44.          * 如果字符a-z A-Z 0-9 或者_,他们因为没有编译,所以不会被解密 
  45.          * 如果是%E4%B8%AD%E5%9B%BD%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD,他们会被解码为文字 
  46.          */  
  47.         System.out.println(ud.decode(str1_1,"utf-8"));  
  48.         System.out.println(ud.decode(str2_2,"utf-8"));  
  49.           
  50.         System.out.println("-----------------------------------");  
  51.         /** 
  52.          * 如果解密不是原本的字符类型(utf8-----gbk) 
  53.          */  
  54.         System.out.println(ud.decode(str1_1,"gbk"));  
  55.         System.out.println(ud.decode(str2_2,"gbk"));  
  56.           
  57.         System.out.println("-----------------------------------");  
  58.         /** 
  59.          * 如果解密不是原本的字符类型(utf8-----ISO-8859-1) 
  60.          */  
  61.         System.out.println(ud.decode(str1_1,"ISO-8859-1"));  
  62.         System.out.println(ud.decode(str2_2,"ISO-8859-1"));  
  63.     }  
  64. }  


上面是代码,里面我的注释已经写了,如果有不明白的,可以找我,再看看运行后的效果!

 

     

[java] view plaincopy
  1. str1_1=abcdefghijklmnopqrstyvwxyz  
  2. str2_2=%E4%B8%AD%E5%9B%BD%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD  
  3. ----------------------------------  
  4. abcdefghijklmnopqrstyvwxyz  
  5. 中国人民共和国  
  6. -----------------------------------  
  7. abcdefghijklmnopqrstyvwxyz  
  8. 中国人民共和国  
  9. -----------------------------------  
  10. abcdefghijklmnopqrstyvwxyz  
  11. 涓浗浜烘皯鍏卞拰鍥�  
  12. -----------------------------------  
  13. abcdefghijklmnopqrstyvwxyz  
  14. 中国人民共和国  


从上面,我们可以看出,如果编码为非ASCII,在编码中都会编译为16进制的编码,我们只需要为编译后的16进制代码解密就可以了!所以在生活中,如果遇见乱码的问题,不要慌,先看看数据库中的编码格式是否和程序中的相一致,只有编码一直才不会出现乱码的情况!

学习在于积累!


原创粉丝点击