URLDecoder和URLEncoder用于完成普通字符串和application/x-www-form-urlencoded MIME字符串之间的相互转换。

https://www.baidu.com/s?ie=UTF-8&wd=%E4%BD%A0%E5%A5%BD

当URL地址里包含非西欧字符的字符串时,系统会将这些非西欧字符串转换成看似乱码的特殊字符串。编程过程中可能涉及普通字符串和这种特殊字符串的相关转换,这就需要使用URLDecoder和URLEncoder类。

➢ URLDecoder类包含一个decode(String s, String enc)静态方法,它可以将看上去是乱码的特殊字符串转换成普通字符串。

➢ URLEncoder类包含一个encode(String s, String enc)静态方法,它可以将普通字符串转换成application/x-www-form-urlencoded MIME字符串。

参数解释:
        s - 要转换(/被转换)的String。
        enc – 支持的字符编码(/解码)的名称。

对字符串进行编码时,适用以下规则:

  • 字母数字字符“ a ”到“ z ”、“ A ”到“ Z ”和“ 0 ”到“ 9 ”保持不变。
  • 特殊字符“ . ”、“ - ”、“ * ”和“ _ ”保持不变。
  • 空格字符“”被转换为加号“ + ”。
  • 所有其他字符都是不安全的,首先使用某种编码方案将其转换为一个或多个字节。 然后每个字节由 3 个字符的字符串“ %xy ”表示,其中xy是字节的两位十六进制表示。 推荐使用的编码方案是 UTF-8。 但是,出于兼容性原因,如果未指定编码,则使用平台的默认编码。

例如:

使用 UTF-8 作为编码方案,

字符串“The string ü@foo-bar”

将被转换为

“The+string+%C3%BC%40foo-bar”,

因为在 UTF-8 中,字符 ü 被编码为两个字节 C3(十六进制)和 BC(十六进制),字符 @ 被编码为一个字节 40(十六进制)。

提示:

仅包含西欧字符的普通字符串和application/x-www-form-urlencoded MIME字符串无须转换,而包含中文字符的普通字符串则需要转换,转换方法是每个中文字符占两个字节,每个字节可以转换成两个十六进制的数字,所以每个中文字符将转换成“%XX%XX”的形式。当然,采用不同的字符集时,每个中文字符对应的字节数并不完全相同,所以使用URLEncoder和URLDecoder进行转换时也需要指定字符集。

测试:

        try {//你好System.out.println(URLDecoder.decode("%E4%BD%A0%E5%A5%BD", "utf-8"));//%E4%BD%A0%E5%A5%BDSystem.out.println(URLEncoder.encode("你好", "utf-8"));} catch (UnsupportedEncodingException e) {e.printStackTrace();}

Java URLDecoder和URLEncoder相关推荐

  1. java 中文解码_java使用URLDecoder和URLEncoder对中文字符进行编码和解码

    摘要: URLDecoder 和 URLEncoder 用于完成普通字符串 和 application/x-www-form-urlencoded MIME 字符串之间的相互转换.在本文中,我们以使用 ...

  2. java urlencoder,java中的URLEncoder和URLDecoder类

    java中的URLEncoder和URLDecoder类 URLEncoder类包含将字符串转换为application/x-www-form-urlencoded MIME 格式的静态方法. 为了解 ...

  3. URLDecoder和URLEncoder的使用

    一.为什么要使用URLDecoder和URLEncoder URLDecoder和URLEncoder它的作用主要是用于普通字符串和application/x-www-form-rulencoded ...

  4. Java URLDecoder.decode 加号变成空格

    解决方法: 先URLEncoder.encode一下,然后再URLDecoder.decode,如图:

  5. java url内容加密_java URLEncoder和URLDecoder 网络数据传输加密

    /* 网页中的表单使用POST方法提交时,数据内容的类型是application/x-www-form-urlencoded,这种类型会: 1.字符"a"-"z" ...

  6. Java程序设计——URLDecoder类和URLEncoder类(网络编程)

    普通字符串和MIME字符串之间的转换工具:URLDecoder和URLEncoder工具类 URLDecoder工具类: 方法 功能 decode(String s, String enc) 将MIM ...

  7. URLEncoder.encode(str,编码) new URLDecoder().decode(str,编码)

    try   {                                 String enUft = URLEncoder.encode("广东省福利彩票开奖信息网", & ...

  8. java的URLEncoder.encode() 疑问与解惑

    疑问 空格变成了+? -*.不能转换url编码? 解惑 URL 编码通常使用加号(+)或 %20 替代空格. 如果要转换为%20,可以先进行转换编码,再替换 + 为 %20 **注意:**在JavaS ...

  9. URLEncoder和URLDecoder编码和解码

    URLDecoder和URLEncoder它的作用主要是用于普通字符串和application/x-www-form-rulencoded MIME字符串之间的转换 URLDecoder类包含一个de ...

  10. Java基础部分笔记----------网络编程

    2019独角兽企业重金招聘Python工程师标准>>> 1.Java网络基本支持 1.1 InetAddress Java中的InetAddress是一个代表IP地址的对象.IP地址 ...

最新文章

  1. 使对象具有ES6中Iterator接口的实现方法
  2. 软件回归测试及其实践
  3. 移动App的发展趋势
  4. 使用docker运行微信wechat的安装脚本
  5. 软件工程第一周预备作业
  6. 运动世界校园3.0版本逆向分析破解
  7. python网络测速_Linux下3种常用的网络测速工具
  8. 桑格测序服务市场现状及未来发展趋势
  9. 快速清除系统中的木马病毒
  10. Wireshark分析sql布尔盲注流量包
  11. R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化密度图、使用scale_x_continuous函数指定X轴坐标轴的取值范围(起始值和终止值)
  12. iOS第三方-Masonry使用技巧
  13. IDS入侵检测系统与开源IDS-snort的安装与编写规则
  14. 【Arduino】LCD 1602 转接板 的默认接线
  15. EMC VNX5400 File NAS证书过期问题
  16. Pandownload 下线了,我花了 30 分钟自己搭建了一个网盘!
  17. 宠辱不惊 闲看庭前花开花落
  18. 2022.02.24
  19. 个人博客后台系统分类管理
  20. 2022年四川建筑八大员(标准员)考试试题及答案

热门文章

  1. 基于java的高校科研管理系统
  2. 2021华为软挑(区域初赛)总结
  3. 2021华为软挑-成渝复赛复盘
  4. ad怎么批量改元器件封装_ad16如何批量添加封装库?
  5. VTM3.0代码阅读:xCheckRDCostMerge2Nx2N函数
  6. Windows 10 20H2 微软MSDN官方正式版ISO镜像下载
  7. GitLab上配置SSH Key
  8. Python基础 day2
  9. 新中大怎么修改服务器,新中大如何修改服务器地址
  10. 协同oa办公系统在线演示下载地址