在python3中处理url时,若出现unicodeencodeerror错误,可通过urllib.parse.quote对特殊字符(如中文)进行url编码,再用urllib.parse.unquote进行解码,确保url内容在传输过程中正确无误,并能准确还原原始字符串。
1、 构造HTTP请求时,若URL中直接包含中文或其他非ASCII字符,系统在底层处理过程中可能因编码不匹配而抛出UnicodeEncodeError异常。
2、 实际报错场景如下所示。


立即学习“Python免费学习笔记(深入)”;
3、 要实现URL编码与解码功能,需先从urllib库中导入parse子模块。
4、 具体导入方式如下图所示。

5、 对URL中含中文、空格、斜杠等特殊字符的部分,调用parse.quote进行编码,之后再与协议头、域名等其他URL组成部分拼接,即可生成合法可传输的URL。

6、 在PyCharm中设置断点并运行调试,观察编码后的URL字符串,可见所有特殊字符均被转换为形如%xx的十六进制转义序列。

7、 利用parse.unquote函数,可将已编码的URL字符串完整还原为原始可读形式,解码效果如下图所示。



















