• 关于URLEncoder的编码和URLDecode解码


    在我们开发中,很多时候会遇见各种编码乱码的问题,其实这都是编码不一致的问题,如果你懂得了关于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.  */  
    10. public class EncodeUtil {  
    11.     public static void main(String[] args)throws Exception {  
    12.         /** 
    13.          * 编码 
    14.          * 如果字符a-z A-Z 0-9 或者_ ,他们不会被编码 
    15.          */  
    16.         String str1 = "abcdefghijklmnopqrstyvwxyz";  
    17.         String str1_1 = URLEncoder.encode(str1, "utf-8");  
    18.         System.out.println("str1_1="+str1_1);  
    19.         /** 
    20.          * 编码 
    21.          * 非字符a-z A-Z 0-9 或者_ ,他们被编码 
    22.          */  
    23.         String str2 = "中国人民共和国";  
    24.         String str2_2 = URLEncoder.encode(str2, "utf-8");  
    25.         System.out.println("str2_2="+str2_2);  
    26.         System.out.println("----------------------------------");  
    27.         /** 
    28.          * 解码 
    29.          */  
    30.         URLDecoder ud = new URLDecoder();  
    31.         System.out.println(ud.decode(str1, "utf-8"));  
    32.         System.out.println(ud.decode(str2, "utf-8"));  
    33.           
    34.         System.out.println("-----------------------------------");  
    35.         /** 
    36.          * 解码 
    37.          * 如果字符a-z A-Z 0-9 或者_,他们因为没有编译,所以不会被解密 
    38.          * 如果是%E4%B8%AD%E5%9B%BD%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD,他们会被解码为文字 
    39.          */  
    40.         System.out.println(ud.decode(str1_1,"utf-8"));  
    41.         System.out.println(ud.decode(str2_2,"utf-8"));  
    42.           
    43.         System.out.println("-----------------------------------");  
    44.         /** 
    45.          * 如果解密不是原本的字符类型(utf8-----gbk) 
    46.          */  
    47.         System.out.println(ud.decode(str1_1,"gbk"));  
    48.         System.out.println(ud.decode(str2_2,"gbk"));  
    49.           
    50.         System.out.println("-----------------------------------");  
    51.         /** 
    52.          * 如果解密不是原本的字符类型(utf8-----ISO-8859-1) 
    53.          */  
    54.         System.out.println(ud.decode(str1_1,"ISO-8859-1"));  
    55.         System.out.println(ud.decode(str2_2,"ISO-8859-1"));  
    56.     }  
    57. }  


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

     

         

    [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进制代码解码就可以了!所以在生活中,如果遇见乱码的问题,不要慌,先看看数据库中的编码格式是否和程序中的相一致,只有编码一致才不会出现乱码的情况!

    学习在于积累!

    转自:http://blog.csdn.net/springsky_/article/details/7022366

    Le王冬冬 博客分享地址: http://www.cnblogs.com/dongdong230/ 每个人都应做一天攻城狮
  • 相关阅读:
    day21继承
    day22
    面向对象
    常用模块
    模块
    迭代器
    【游记】2020-CSP
    【初赛解析】2021CSP-S初赛解析(不完全)
    【题解】AcWing 1390.通电围栏
    【题解】AcWing 1387.家的范围
  • 原文地址:https://www.cnblogs.com/dongdong230/p/4183082.html
Copyright © 2020-2023  润新知