Python 3.x urlopen时如何处理url中的中文部分

(禁止转载)

今天在尝试通过利用高德地图api做一个通过地名获得经纬度的小工具时遇到一个小问题

拼接好的http url大概是这样:

"http://restapi.amap.com/v3/geocode/geo?address=北京朝阳区阜通东大街6号&output=XML&key="

其中的中文编码处理问题纠结了好久,最后得到一种解决办法如下:

s = '北京朝阳区阜通东大街6号'

s = urllib.parse.quote(s)

url = "http://restapi.amap.com/v3/geocode/geo?address=%s&output=XML&key="%(s)

如此,再进行

req = urllib.request.urlopen(url)

即可。

至于进一步,这个问题为什么回发生呢?

其实很好理解,因为HTTP协议是ASCII编码的形式。所以所以中文必须通过以上方式要变成字母然后才能正确编码为字节流,然后发到网络中。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容