客户端在进行网页请求的时候,网址中可能会包含非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中

URLEncoder编码的更多相关文章

  1. 浅谈URLEncoder编码算法

    一.为什么要用URLEncoder 客户端在进行网页请求的时候,网址中可能会包含非ASCII码形式的内容,比如中文. 而直接把中文放到网址中请求是不允许的,所以需要用URLEncoder编码地址, 将 ...

  2. URLEncoder.encode编码空格变+号

    今天调用rest接口的时候,使用URLEncoder编码将空格转为了+号,而rest接口方需要将空格转为%20,参照标准 之后用了不少在线的工具测试,有的将空格转为了+号,有的则是转为了%20.看了一 ...

  3. 浅谈Hex编码算法

    一.什么是Hex 将每一个字节表示的十六进制表示的内容,用字符串来显示. 二.作用 将不可见的,复杂的字节数组数据,转换为可显示的字符串数据 类似于Base64编码算法 区别:Base64将三个字节转 ...

  4. 浅谈Base64编码算法

    一.什么是编码解码 编码:利用特定的算法,对原始内容进行处理,生成运算后的内容,形成另一种数据的表现形式,可以根据算法,再还原回来,这种操作称之为编码. 解码:利用编码使用的算法的逆运算,对经过编码的 ...

  5. 【JAVA编码专题】深入分析 Java 中的中文编码问题

    http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/ 几种常见的编码格式 为什么要编码 不知道大家有没有想过一个问题,那就是为什么 ...

  6. java字符编码(转)

    转载:http://blog.csdn.net/peach99999/article/details/7231247 深入讨论java乱码问题 几种常见的编码格式 为什么要编码 不知道大家有没有想过一 ...

  7. 【Java基础】让编码不再让你困惑

    目录 1. ASCII编码 2. Unicode编码 3. UTF-8编码 4. UTF8.UTF16和UTF32之间的区别 5. GBK.GB2312和GB18030之间的区别 6. Java中的编 ...

  8. Android操作HTTP实现与服务器通信(转)

    Android操作HTTP实现与服务器通信   本示例以Servlet为例,演示Android与Servlet的通信. 众所周知,Android与服务器通信通常采用HTTP通信方式和Socket通信方 ...

  9. android WebView介绍

    在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装成名为WebView的组件. WebView使用: (1)添加权限:AndroidManifest.xml中必须使用许可&q ...

随机推荐

  1. python 之post、get与cookie实战

    项目名称:登陆考勤管理系统爬取个人考勤信息并写入excel表格 编写目的: 公司经常要统计员工的考勤信息,而员工每次都要登陆考勤系统,再复制相关信息出来,贴到EXCEL,再转给统计人员,统计人员再挨个 ...

  2. Jetty与Tomcat的区别 转

    Jetty与Tomcat的区别 由于没有研究过Tomcat,所以区别不好说,这里暂时就网上的一些言论和自己所了解到的一些总结下(摘自于许令波). Jetty 的架构从前面的分析可知,它的所有组件都是基 ...

  3. Django教程

    开发环境:Centos7,Django 1.10,Python 2.7 Django入门 本教程内容大部分来源于Django官网,有翻译不到位的欢迎大家指正,这部分的内容有助于新手快速搭建一个网站,让 ...

  4. 如何正确做 Web端压力测试?

    ​    ​一个完整的压力测试需要关注三个方面:如何正确产生压力.如何定位瓶颈.如何预估系统的承载能力. ​    ​(1) 如何产生压力:产生压力的方法有很多,通常可以写脚本产生压力机器人对服务器进 ...

  5. excel表格中关于 撤销工作表保护密码

    利用宏处理,代码如下: Sub PasswordBreaker() Dim i As Integer, j As Integer, k As Integer Dim l As Integer, m A ...

  6. XML与JSON的对比

    XML与JSON的对比 1.各自定义 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类 ...

  7. ssh远程连接错误

    在平时工作中,有时候需要SSH登陆到别的Linux主机上去,但有时候SSH登陆会被禁止,并弹出如下类似提示: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  8. jQuery:获取浏览器中的分辨率

    JQuery: <script type="text/javascript"> $(document).ready(function(){ alert($(window ...

  9. linux下生成rsa密钥的方法

    首先生成密钥,用命令ssh-keygen –t rsa 运行后可以一直空格,生成密钥,id_rsa和id_rsa.pub文件 ,默认放在/root/.ssh/下,.ssh文件是隐藏的,要显示隐藏文件才 ...

  10. 通过List<String>动态传递参数给 sqlcommand.Parameters

    通过List<String>动态传递参数 private void GetallChecked_TreeNote(TreeNodeCollection aNodes, ref int To ...