URL的字符编码

Posted damizhou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL的字符编码相关的知识,希望对你有一定的参考价值。

摘要:

        在通过URL访问HTTP SERVER的时候,通常会产生trace callback的异常,返回505的错误," VERSION IS NOT SUPPORTED ?" ,难道是客户端协议版本和服务端不兼容,这个就不太可能了,究竟是什么原因。要从URL的字符编码说起。

URL 字符编码:

URL 只能使用ASCII字符集。

来通过因特网进行发送。由于 URL 常常会包含 ASCII 集合之外的字符,URL 必须转换为有效的 ASCII 格式。

URL 编码使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 字符。

URL 不能包含空格。URL 编码通常使用 + 来替换空格。

URL 编码转换:

各种SDK包都替换了都转换的方法,我们采用python来说明:

比如:http://xx.xx.xx.xx/api?key1=magics &key2=深圳麦集思科技有限公司  &key3=人工智能

如何进行转换呢,python 已经为我们准备好了库函数,我们自己去调用就好了。

data = ‘key1‘: ‘magics ‘,‘key2‘=‘深圳麦集思科技有限公司  ‘,‘key3‘=‘人工智能

s=urlencode(data)

s的最终结果是什么呢?

key3=%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD&key2=%E6%B7%B1%E5%9C%B3%E9%BA%A6%E9%9B%86%E6%80%9D%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8++&key1=magics+

这个才是http协议中所需要的字符串

以上是关于URL的字符编码的主要内容,如果未能解决你的问题,请参考以下文章

如何对URL字符串进行百分号编码

URL的字符编码

URL中的保留字符和不安全字符编码

BASE64编码的字符进行URL传输丢失特殊字符的问题

拉丁编码字符是不是被认为是 URL 安全的?

URL编码:怎样读取特殊字符