浅谈URLEncoder编码算法
1。为什么使用 URLEncoder
客户端发出网页请求时,URL中可能包含非ASCII码的内容,例如中文。
URL中不允许直接放入汉字,所以需要使用URLEncoder对地址进行编码,
将URL中的非ASCII内容转换为可以传输的字符
不会被编码的内容
1.大写字母A-Z
2。小写字母 a-z
3。数字 0-9
4。标点符号 - _ 。 ! ~ * '(和,)
2。编码原理
1。将需要转换的内容(ASCII码形式以外的内容)转换为十六进制,并在开头添加%
例如:0x9c URLEncoder --> %9c
2。将内容中的所有空格“ ”替换为+
3。注意:与 Hex 不同的是,Hex 会将所有字符转换为十六进制表示,而 URLEncoder 将 ASCII 代码集之外的字符转换为 % 加相应的十六进制表示,而 ASCII 代码集以内的字符则不进行处理
3。应用场景
1。所有 GET 请求
2。网址有汉字
3。 POST请求,所有Key和Value都要经过URLEncoder才提交
4。示例
String a = URLEncoder.encode("a", "UTF-8");
Log.i("encode","URLEncoder 编码后的 a -->"+a );
String b = URLEncoder.encode("a", "UTF-8");
Log.i("encode","a中URLEncoder编码后-->"+b);String debug = nURLDecoder.decode("a%E4%B8%AD", "UTF-8");
Log.i("encode","URLDecoder解码后的a%E4%B8%AD --> " +解码);
} 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-->a%E4%B8%AD
10-17 07:33:14.377 1012-1012/com.xqx.encrypsthow 中进行 URLEncoder 编码后: a%E4 % B8%AD 通过 URLDecoder 解码后 --> 在
可以看到字符‘a’没有被编码,而是中文‘中’被编码了
对应URLEncoder编码的是URLDecoder解码
可以看到“a in”--编码-->“a%E4%B8%AD”--解码-->“a in”
相关知识:
浅谈Hex编码算法
Base64编码算法浅谈
-->相关文章
- 10-05 stm32内存包括哪些类型(stm32内存分为几个
- 10-05 stm32采集+数据处理程序(stm32采集+数据
- 10-05 stm32仿真图的引脚如何连接(stm32仿真器接
- 10-05 Zabbix警告问题
- 10-05 Zabbix集成云预警(瑞祥云)实现电话短信预警
- 10-05 利用企业微信实现预警(shell+python)
- 10-05 高通CEO爆料苹果自研5G芯片明年准备就绪
- 10-05 全球智能手机市场被扰乱:iPhone与Androi
- 10-05 苹果最新巧克力广告:Apple Card激活到付款
- 10-05 苹果推出iOS 15.6正式版固件:我们来看看iO
- 10-05 iPadOS 16 允许应用程序使用 M1 设备存
- 10-05 为迎接Apple Watch 10周年:Appl
- 10-05 STM32连接esp32(stm32连接esp32
- 10-05 stm32串口dma发送和接收周期数据和随机数据(
- 10-05 stm32点亮led灯ad20 (stm32点亮l
- 10-05 esp32编程接线图(esp32编程程序接线图)
- 10-05 DAC0832波形发生器课程设计报告(dac083
- 10-05 vs2010单行读取文本_VS2010-MFC获取
- 10-05 Web漏洞-SQL注入(二)
- 10-05 phpunit thinkphp模型单元测试
- 最近发表