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协议中所需要的字符串

原文地址:https://www.cnblogs.com/damizhou/p/11332131.html