我有一个名为City的模型,在该模型中我有一个URLField。使用Django管理工具我试图输入此URL“http://en.wikipedia.org/wiki/Düsseldorf”。管理员抱怨这是一个无效的URL,可能是因为“ü”unicode字符。在文档中 http://docs.djangoproject.com/en/dev/ref/forms/fields/#urlfield您可以阅读以下语句:“在Django 1.2中更改:URLField以前无法将URL识别为包含IDN(国际化域名;包含unicode字符的域名)域名的有效URL。现在已经但是我收到一条错误消息:“输入一个有效的URL”。我使用的是Django版本1.2.2。
有谁知道发生了什么事?
答案 0 :(得分:0)
http://en.wikipedia.org/wiki/Düsseldorf
不是URI,而是IRI。
如果您的软件不直接支持IRI,则必须自行手动转换。除了确实使用IDN编码的主机名部分,这意味着使用UTF-8和URL编码:
在现代的支持IRI的网络浏览器中,这通常仍会显示为“杜塞尔多夫”(请点击链接查看)。