在url中有unicode字符

时间:2012-07-08 15:51:35

标签: python django

例如在此网址中:

(r'^company/لیست-مقالات/$','CompanyHub.views.docList')

لیست مقالات部分我有unicode字符,但是我收到了这个错误:

Caught UnicodeDecodeError while rendering: 'ascii' codec can't decode byte 0xd9 in position 0: ordinal not in range(128)

2 个答案:

答案 0 :(得分:2)

您需要在字符串前面u前面加r,或者用unicode方法包装它:

有关详细信息,请参阅this

  

Unicode字符串很像字符串,但在语法中指定   使用前面的'你'字符:u'abc',u“def”。

http://docs.python.org/library/stdtypes.html

答案 1 :(得分:1)

首先,要在Python中的字符串文字中使用非ASCII字符,您需要在源文件的顶部指定字符编码,例如:

# -*- coding: utf-8 -*-

其次,如果你pass a Unicode string to django它通常会做正确的事情。在这种情况下,它应该转换URL中的所有非ASCII字符。如果不是,那么您可以明确地致电django.utils.encoding.iri_to_uri()