URL编码

1. 为什么要使用URL编码?

URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。
比如不可能这样的网址http://www.快乐编程.com。这是因为网络标准RFC1738做了规定:

"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'(),"
[not including the quotes - ed],
and reserved characters used for their reserved purposes may be used unencoded within a URL."

"只有字母和数字[0-9a-zA-Z]、一些特殊符号"$-_.+!*'(),"[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。"

那么如果URL中存在中文或者其他的文字怎么办呢?这便要使用“URL编码”。

2. 示例

打开浏览器,在网址栏中输入:

回车后,使用开发者工具(F12)查看请求:

"编码" 变成了 "%E7%BC%96%E7%A0%81"

这个转化过程是这样的:

  1. "编码"经Unicode编码后得到:"E7BC96E7A081"
  2. 以8位为一组,在每组之间添上%,便得到 "%E7%BC%96%E7%A0%81"。

3. 总结

URL编码的目的是为了解决在URL中不能出现RFC1738规定之外的字符的问题。
其实URL编码是很“混乱的”,“编码”不一定会使用Unicode编码,比如可以使用GBK来编码,那么得到的URL也会随之改变。

CS专业在读,热爱编程。
专业之外,喜欢阅读,尤爱哲学、金庸、马尔克斯。
原文地址:https://www.cnblogs.com/jmhwsrr/p/14032655.html