python解码非英语用作URL?

时间:2018-07-07 17:18:12

标签: python unicode utf-8 io decode

我有一个变量,例如title

title = "révolution_essentielle"

出于其他目的,我可以像这样对它进行编码和解码:

title1 = unicode(title, encoding = "utf-8")

但是我如何保留非英语并将其作为访问URL的URL字符串的一部分呢?例如,理想情况下,我希望通过串联包括https://mainurl.com/révolution_essentielle.html的几个字符串来title

url = main_url + "/" + title + ".html"

有人能告诉我怎么做吗?谢谢你!

1 个答案:

答案 0 :(得分:0)

总结一下我们在评论中讨论的内容:有一个引用URL的功能(用%前缀转义序列替换特殊字符。

对于Python 2(在这种情况下使用的),它是urllib.quote(),可以按以下方式使用:

urllib.quote("révolution_essentielle")

当我们的输入是带有宽字符的unicode对象时,我们还需要先对其进行编码,例如:

urllib.quote(u'hey_there_who_likes_lego_that\xe3\u019\xe2_\xe3_...'.encode('utf8')).

请当心,以使您的表示与对方机器预期/理解的表示相符。


如果我们在谈论Python 3,则等效函数为urllib.parse.quote()

urllib.parse.quote("révolution_essentielle")

可以检查str(unicode)参数以及bytes对象中的编码值。