问题分析
- 百分号编码实际上将字符转为UTF-8格式,便于生成URL/URI等基于ASCII的字符串
- 但是单纯用encode函数得到的是bytes类型,所以需要用urllib提供的quote函数进行转码
解决办法
- Python2.x中使用urllib.quote函数完成
- Python3+中使用urllib.parse.quote函数完成
示例
>>> a = '乙' >>> a '乙' >>> a.encode <built-in method encode of str object at 0x0000018775DC0E40> >>> a.encode() b'\xe4\xb9\x99' >>> import urllib >>> urllib.parse.quote(a) '%E4%B9%99' >>>