关于URLEncoder的编码和URLDecode解码
在我们开发中,很多时候会遇见各种编码乱码的问题,其实这都是编码不一致的问题,如果你懂得了关于URLEncoder的编码和URLDecode解码,那么问题就会随之消失!
下面我们看看关于编码的代码:
- package com.zhagnke.test;
- import java.beans.Encoder;
- import java.net.URLDecoder;
- import java.net.URLEncoder;
- /**
- * 关于URLEncoder的编码和URLDecode解码
- */
- 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进制代码解码就可以了!所以在生活中,如果遇见乱码的问题,不要慌,先看看数据库中的编码格式是否和程序中的相一致,只有编码一致才不会出现乱码的情况!
学习在于积累!
转自:http://blog.csdn.net/springsky_/article/details/7022366
关于URLEncoder的编码和URLDecode解码的更多相关文章
- URLEncode编码和URLDecode解码
String text1 = java.net.URLEncoder.encode("中国" ,"utf-8" ); String text2 = java.n ...
- java.net.URLEncode编码 与 URLDecode解码问题
1.java内部加密和解密 String mytext = java.net.URLEncoder.encode("中国", "utf-8"); String ...
- urlencode编码与urldecode解码
转载请注明来源:https://www.cnblogs.com/hookjc/ <script type="text/javascript"><!--functi ...
- 如何用excel urldecode解码把url编码转为汉字?
统计分析可以反映出网站运营的情况,并根据实际作出相应的调整,是站长必需的基础技能.ytkah感觉最好用的是谷歌统计,里面有个搜索关键词及对应受访页面,这个功能对优化用处很大,但大家都知道访问不太顺畅. ...
- javaWeb中URLEncoder.encode编码需要调用两次
今天碰到一个问题,在Controller类中一个方法跳转到该类中的另一个方法,带着中文参数,在跳转之前对该参数进行编码: msg = java.net.URLEncoder.encode(msg,&q ...
- WebRTC VideoEngine超详细教程(三)——集成X264编码和ffmpeg解码
转自:http://blog.csdn.net/nonmarking/article/details/47958395 本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine超详细教 ...
- 特殊字符url编码以后再解码后出现错误(¬ , ¢, ¤, £)
Url编码的原内容是 “¬ify_url=xxxx” 经过url编码以后再解码回来 “¬”的部分就变成了“¬” 解决方案:把原文里面待url编码的&符号先替换成 ...
- UrlEncode编码/UrlDecode解码
public class encode { public static void main(String[] args) throws UnsupportedEncodingException ...
- [SoapUI] UrlEncode编码/UrlDecode解码网站
http://tool.chinaz.com/Tools/URLEncode.aspx 解码: 编码:
随机推荐
- hdu 5400 Arithmetic Sequence
http://acm.hdu.edu.cn/showproblem.php?pid=5400 Arithmetic Sequence Time Limit: 4000/2000 MS (Java/Ot ...
- GC:垃圾回收器简介
Java堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法,年老代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK ...
- 分享吉林大学机械科学与工程学院,zhao jun 博士的Halcon学习过程及知识分享
分享吉林大学机械科学与工程学院,zhao jun 博士的Halcon学习过程及知识分享 全文转载zhao jun 博士的新浪博客,版权为zhaojun博士所有 原文地址:http://blog.sin ...
- WPF让人哭笑不得的资源(二)
再吐槽一下(我已经无力吐槽).今天又被资源搞了一天,发现了一个秘密.大家想听就跟随我... 以前写的一个东东,想用mvvm重新实现一下,由于之前的写得很乱,App.xaml里一坨一坨的,就把资源整到一 ...
- 检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
在项目中将数据导出为Excel格式时出现“检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070 ...
- uva387 - A Puzzling Problem
A Puzzling Problem The goal of this problem is to write a program which will take from 1 to 5 puzzle ...
- ZTE AD3812 3G模块在linux 2.6.34 内核的开发板上的支持方法
先说段废话,话说在linux 2.6.34 下,好多比较新的3G网卡及3G模块都没有很好的支持.如果想支持的这些3G网卡/3G模块呢,基本上有两种方式: 1.使用该3G模块的 linux 下的驱动,交 ...
- jquery动态创建form并提交到.ashx文件处理
有时候在写web 应用的时候,需要临时动态构造一个form 并提交,form 里面的参数以及action,以及是post请求还是get请求,甚至form 的样式都是可以指定的,用原生的java ...
- CSS3+Js制作的一款响应式导航条
今天制作了一个响应式导航条,能够自动随着不同的屏幕分辨率或浏览器窗口大小的不同而改变导航条的样式,这里主要用到的就是CSS3的Media Query.具体可以查看浅谈响应式布局这篇文章,这里就不花费大 ...
- C#基本线程同步
0 概述 所谓同步,就是给多个线程规定一个执行的顺序(或称为时序),要求某个线程先执行完一段代码后,另一个线程才能开始执行. 第一种情况:多个线程访问同一个变量: 1. 一个线程写,其它线程读:这种情 ...