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
  • Python 2.5,Debian Linux 32 位
  • Python 2.6,Windows 7 64 位。
  • 最佳答案

    在这种情况下,标准 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/

    10-12 21:06