zoukankan      html  css  js  c++  java
  • 关于URLEncoder的编码和URLDecode解码

          在我们开发中,很多时候会遇见各种编码乱码的问题,其实这都是编码不一致的问题,如果你懂得了关于URLEncoder的编码和URLDecode解码,那么问题就会随之消失!

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

    package com.zhagnke.test;
    
    import java.beans.Encoder;
    import java.net.URLDecoder;
    import java.net.URLEncoder;
    
    /**
     * 关于URLEncoder的编码和URLDecode解码
     * @author spring sky
     * QQ 840950105
     * Email vipa1888@163.com
     * My name:石明政
     *
     */
    public class EncodeUtil {
    	public static void main(String[] args)throws Exception {
    		/**
    		 * 编码
    		 *  * 如果字符a-z A-Z 0-9 或者_ ,他们不会被编码
    		 */
    		String str1 = "abcdefghijklmnopqrstyvwxyz";
    		String str1_1 = URLEncoder.encode(str1, "utf-8");
    		System.out.println("str1_1="+str1_1);
    		/**
    		 * 编码
    		 *  * 非字符a-z A-Z 0-9 或者_ ,他们被编码
    		 */
    		String str2 = "中国人民共和国";
    		String str2_2 = URLEncoder.encode(str2, "utf-8");
    		System.out.println("str2_2="+str2_2);
    		System.out.println("----------------------------------");
    		/**
    		 * 解码
    		 * 
    		 */
    		
    		URLDecoder ud = new URLDecoder();
    		System.out.println(ud.decode(str1, "utf-8"));
    		System.out.println(ud.decode(str2, "utf-8"));
    		
    		System.out.println("-----------------------------------");
    		/**
    		 * 解码
    		 * 如果字符a-z A-Z 0-9 或者_,他们因为没有编译,所以不会被解密
    		 * 如果是%E4%B8%AD%E5%9B%BD%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD,他们会被解码为文字
    		 */
    		System.out.println(ud.decode(str1_1,"utf-8"));
    		System.out.println(ud.decode(str2_2,"utf-8"));
    		
    		System.out.println("-----------------------------------");
    		/**
    		 * 如果解密不是原本的字符类型(utf8-----gbk)
    		 */
    		System.out.println(ud.decode(str1_1,"gbk"));
    		System.out.println(ud.decode(str2_2,"gbk"));
    		
    		System.out.println("-----------------------------------");
    		/**
    		 * 如果解密不是原本的字符类型(utf8-----ISO-8859-1)
    		 */
    		System.out.println(ud.decode(str1_1,"ISO-8859-1"));
    		System.out.println(ud.decode(str2_2,"ISO-8859-1"));
    	}
    }
    


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

         

    str1_1=abcdefghijklmnopqrstyvwxyz
    str2_2=%E4%B8%AD%E5%9B%BD%E4%BA%BA%E6%B0%91%E5%85%B1%E5%92%8C%E5%9B%BD
    ----------------------------------
    abcdefghijklmnopqrstyvwxyz
    中国人民共和国
    -----------------------------------
    abcdefghijklmnopqrstyvwxyz
    中国人民共和国
    -----------------------------------
    abcdefghijklmnopqrstyvwxyz
    涓浗浜烘皯鍏卞拰鍥�
    -----------------------------------
    abcdefghijklmnopqrstyvwxyz
    中国人民共和国
    


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

    学习在于积累!

  • 相关阅读:
    asp.net core abp 视频教程1
    一种简单、易用的顶尖学习法——费曼学习法
    WPF附加属性
    WPF popup被截断的原因和修改方法
    cefsharp 在anycpu下运行
    XP系统运行wpf程序出现透明现象的解决
    Visual studio 2017 Installer 打包.netframework
    WPF Datagrid横向排列
    “App.exe 以附加有调试器,但没有将该调试器配置为调试此未经处理的异常。”
    Head First Python学习笔记4——处理数据
  • 原文地址:https://www.cnblogs.com/springskyhome/p/3689952.html
Copyright © 2011-2022 走看看