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

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

[java] view
plain
copy

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

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

[java] view
plain
copy

  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

关于URLEncoder的编码和URLDecode解码的更多相关文章

  1. URLEncode编码和URLDecode解码

    String text1 = java.net.URLEncoder.encode("中国" ,"utf-8" ); String text2 = java.n ...

  2. java.net.URLEncode编码 与 URLDecode解码问题

    1.java内部加密和解密 String mytext = java.net.URLEncoder.encode("中国", "utf-8"); String ...

  3. urlencode编码与urldecode解码

    转载请注明来源:https://www.cnblogs.com/hookjc/ <script type="text/javascript"><!--functi ...

  4. 如何用excel urldecode解码把url编码转为汉字?

    统计分析可以反映出网站运营的情况,并根据实际作出相应的调整,是站长必需的基础技能.ytkah感觉最好用的是谷歌统计,里面有个搜索关键词及对应受访页面,这个功能对优化用处很大,但大家都知道访问不太顺畅. ...

  5. javaWeb中URLEncoder.encode编码需要调用两次

    今天碰到一个问题,在Controller类中一个方法跳转到该类中的另一个方法,带着中文参数,在跳转之前对该参数进行编码: msg = java.net.URLEncoder.encode(msg,&q ...

  6. WebRTC VideoEngine超详细教程(三)——集成X264编码和ffmpeg解码

    转自:http://blog.csdn.net/nonmarking/article/details/47958395 本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine超详细教 ...

  7. 特殊字符url编码以后再解码后出现错误(&not , &cent, &curren, &pound)

    Url编码的原内容是 “&notify_url=xxxx”  经过url编码以后再解码回来  “&not”的部分就变成了“¬” 解决方案:把原文里面待url编码的&符号先替换成 ...

  8. UrlEncode编码/UrlDecode解码

    public class encode {    public static void main(String[] args) throws UnsupportedEncodingException ...

  9. [SoapUI] UrlEncode编码/UrlDecode解码网站

    http://tool.chinaz.com/Tools/URLEncode.aspx 解码: 编码:

随机推荐

  1. AutoCAD.NET二次开发错误集锦

    1.CAD崩溃,错误“unhandled access violation reading”=“未将对象引用设置到对象的实例”. 2. 建模操作错误:指向给定边的指针为空. 建模操作错误:访问冲突. ...

  2. 5540 asa 8.4 防火墙

    配置等级策略,保证outside端口可以访问inside端口 access-list 100 extended permit icmp any any access-list 100 extended ...

  3. oracle学习 三(持续更新中)

    关于ora 01219问题的解决 之前学习oracle的时候练习去建立表空间,建了很多之后手动删除了,之后再使用自己创建的用户名登陆数据库就会造成数据库 ORA-01031: ORACLE initi ...

  4. 为了支持AOP的编程模式,我为.NET Core写了一个轻量级的Interception框架[开源]

    ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只是一个很轻量级的框架,但是在大部分情况下能够满足我们的需要.不过我觉得 ...

  5. 支付宝修改回调地址后 issign=false

    原因: verifyReturn 拼接url的时候,php自动添加了url参数,而url是本不需要的,所以导致md5对比出错. 修改  alipay_notify.class.php  77行的函数 ...

  6. Oracle 建表常用数据类型的详解

    创建表时,必须为表的各个列指定数据类型.如果实际的数据与该列的数据类型不相匹配,则数据库会拒绝保存.如为学生指定出生日期为“1980-13-31”. 在Oracle中,常见的数据类型有: 字符串:字符 ...

  7. Netty高并发原理

        Netty是一个高性能 事件驱动的异步的非堵塞的IO(NIO)框架,用于建立TCP等底层的连接,基于Netty可以建立高性能的Http服务器.支持HTTP. WebSocket .Protob ...

  8. lvs-dr模式原理详解和可能存在的“假负载均衡”

    原文地址: http://blog.csdn.net/lengzijian/article/details/8089661 lvs-dr模式原理 转载注明出处:http://blog.csdn.net ...

  9. ProcessBuilder和Runtime远程执行

    http://desert3.iteye.com/blog/1596020 ProcessBuilder.start() 和 Runtime.exec() 方法都被用来创建一个操作系统进程(执行命令行 ...

  10. SGU 538. Emoticons 水题

    538. Emoticons 题目连接: http://acm.sgu.ru/problem.php?contest=0&problem=538 Description A berland n ...