Django 文档有一个 [不错的部分] 来处理 URL 中包含非 ASCII 数据的字符串。特别是,它提供了有关如何转换 Unicode 字符串以用于 URL 的以下示例:
>>> urlquote(u'Paris & Orléans')
u'Paris%20%26%20Orl%C3%A9ans'
>>> iri_to_uri(u'/favorites/François/%s' % urlquote(u'Paris & Orléans'))
'/favorites/Fran%C3%A7ois/Paris%20%26%20Orl%C3%A9ans'
但是,似乎没有关于如何执行逆向转换的指示!
假设我的应用程序收到 URL
/favorites/Fran%C3%A7ois/Paris%20%26%20Orl%C3%A9ans
,我如何将其映射回 /favorites/François/
和 Paris & Orléans
?没有
django.utils.encoding.uri_to_iri
函数来补充 django.utils.encoding.iri_to_uri
,也没有 django.utils.http.urlunquote
来补充 django.utils.http.urlquote()
!注意 :
如果这有帮助,我正在使用 Django 1.2
最佳答案
在这种情况下,标准 urllib.unquote()
应该可以正常工作:
>>> urllib.unquote('/favorites/Fran%C3%A7ois/Paris%20%26%20Orl%C3%A9ans')
'/favorites/Fran\xc3\xa7ois/Paris & Orl\xc3\xa9ans'
关于python - 在 Django 中处理 IRI,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4382875/