关于django URL中字符的简单问题

关于django URL中字符的简单问题,django,unicode,ascii,idn,Django,Unicode,Ascii,Idn,在django文档中,他们写道在URL中只能使用ASCII字符。这对我来说似乎很奇怪,因为IDN域中的字符。例如,如果我有IDN域,并且我不想在URL中只包含ASCII字符,那么默认情况下,用简单的方法实现这一点是不可能的 是的,但那又怎样呢。Python本机支持 >>> 'xn--' + u'たとえば'.encode('punycode') + '.com' 'xn--r8j2b1a7a.com' 一个简单的解决方法是要求Django将URL匹配为“.”regexp原始字符

在django文档中,他们写道在URL中只能使用ASCII字符。这对我来说似乎很奇怪,因为IDN域中的字符。例如,如果我有IDN域,并且我不想在URL中只包含ASCII字符,那么默认情况下,用简单的方法实现这一点是不可能的

是的,但那又怎样呢。Python本机支持

>>> 'xn--' + u'たとえば'.encode('punycode') + '.com'
'xn--r8j2b1a7a.com'

一个简单的解决方法是要求Django将URL匹配为“.”regexp原始字符串,因为它不理解“\w”表示UTF-8等字符集

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


祝你好运。

如果不可能呢?我不是专家,但我认为如果答案是真的,那么对于django的创建者和开发人员来说,如果他们想在用户心目中继续把django看作友好的框架,他们还有一些工作要做。如果你能识别django的具体问题,那么我相信开发人员会最感兴趣地听到他们。我现在没有看到问题但只有可能性。