Url编码详解
Url 是统一资源定位器,web 浏览器需要通过 Url 来向 web 服务器请求页面
Hex 编码
Url 只能使用 ascii 码字符集,所以大部分的非英文字符需要转化成有效的 ascii 字符格式
Url 编码使用 % 加上两位 16 进制数来替代非 ascii 字符
Url 一般只涉及到字符串,很少有直接是数值 Byte 转换的
算法
- 检测字符串中的非 ascii 字符
- 获取非 ascii 字符对应的 utf8 字符,比如中文 “我” 对应的 utf8 编码是三个字符 “E6” “88” “91”
- 在每个字符前面加上字符 “%” 然后在拼起来得到字符串 “%E6%88%91”,该字符串就是 UrlEncode 码
- 同样我这里要强调一下,这个字符串知识显示出来的样子,底层实际上是个 9Byte 的数据,分别存放数值 37 69 54 37 56 56 37 57 49
- 另外遇到空格的时候,用 “+” 代替空格