2

在 django 文档中,他们写道,在 urls 中只能使用 ASCII 字符。由于 IDN 域中的字符,这对我来说似乎很奇怪。例如,如果我有 IDN 域并且我想在 url 中不仅包含 ASCII 字符,那么默认情况下真的不可能以简单的方式做到这一点吗?

4

2 回答 2

1

是的,但那又怎样。Python 原生支持Punycode

>>> 'xn--' + u'たとえば'.encode('punycode') + '.com'
'xn--r8j2b1a7a.com'
于 2011-05-30T01:06:19.200 回答
1

一个简单的解决方法是让 Django 将 URL 匹配为 '.' 正则表达式原始字符串,因为它不理解 '\w' 表示您的 UTF-8 等字符集。

因此,在 urls.py 中,您可以编写 'foo/bar/.+' 而不是 'foo/bar/\w+' ,因为它是英语使用者独有的。我只是在开玩笑。

祝你好运。

于 2013-12-10T14:45:50.803 回答