博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
URLEncoder编码
阅读量:5124 次
发布时间:2019-06-13

本文共 1140 字,大约阅读时间需要 3 分钟。

客户端在进行网页请求的时候,网址中可能会包含非ASCII码形式的内容,比如中文。

而直接把中文放到网址中请求是不允许的,所以需要用URLEncoder编码地址,

将网址中的非ASCII码内容转换成可以传输的字符

 

不会被编码的内容

1.大写字母A-Z

2.小写字母a-z

3.数字 0-9

4.标点符 - _ . ! ~ * ' (和 ,)

 

 

二、编码原理

1、将需要转换的内容(ASCII码形式之外的内容),用十六进制表示法转换出来,并在之前加上%开头

eg:  0x9c  URLEncoder --> %9c

2、内容中的空格‘ ’ ,全部用+代替

3、注:与Hex不同,Hex是将所有的字符转换为16进制表示,而URLEncoder是将ASCII码集之外的转换为%加上相应的16进制,而ASCII码集内的字符不进行处理

 

三、应用场景

1、所有的GET请求

2、网址中有中文等情况

3、POST请求,所有的Key和Value在提交之前都要经过URLEncoder

 

四、示例

try {    String a = URLEncoder.encode("a", "UTF-8");    Log.i("encode","a 进行URLEncoder编码后-->"+a );    String b = URLEncoder.encode("a中", "UTF-8");    Log.i("encode","a中 进行URLEncoder编码后-->"+b );    String decode = nURLDecoder.decode("a%E4%B8%AD", "UTF-8");    Log.i("encode","a%E4%B8%AD 进行URLDecoder解码后-->"+decode);} catch (UnsupportedEncodingException e) {    e.printStackTrace();}

运行结果:

10-17 07:33:14.357 1012-1012/com.xqx.encrypsthow I/encode﹕ a 进行URLEncoder编码后-->a

10-17 07:33:14.367 1012-1012/com.xqx.encrypsthow I/encode﹕ a中 进行URLEncoder编码后-->a%E4%B8%AD
10-17 07:33:14.377 1012-1012/com.xqx.encrypsthow I/encode﹕ a%E4%B8%AD 进行URLDecoder解码后-->a中

转载于:https://www.cnblogs.com/bimingcong/p/5663781.html

你可能感兴趣的文章
Handler post用法整理
查看>>
MySQL修改表名示例
查看>>
Windows安装mysql8.0
查看>>
基于docker创建的Jenkins,settings.xml文件放在哪里
查看>>
mongodb读取测试
查看>>
【飞谷六期】爬虫项目4
查看>>
Android-Animations的使用大全之二:Frame Animation和其他
查看>>
文档基本结构标签的作用
查看>>
VMware的linux虚拟机实现和windows的文件共享
查看>>
657. Judge Route Circle
查看>>
android旋转动画的两种实现方式
查看>>
Hibernate4之session核心方法
查看>>
HTML5前端开发学习路线建议,学习前端的必备知识点
查看>>
python 运维自动化之路 Day2
查看>>
ASP.NET 错误
查看>>
[转载]抓大放小,要事为先
查看>>
网页快照
查看>>
linq to json for sl
查看>>
iOS OC语言: Block底层实现原理
查看>>
页面分页
查看>>