3

例如在这个网址中:

(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)
4

2 回答 2

2

您需要在字符串u前面加上 a r,或者将其包装在 unicode 方法中:

有关更多信息,请参阅内容。

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

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

于 2012-07-08T15:57:23.297 回答
1

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

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

其次,如果您将 Unicode 字符串传递给 django,它通常会自己做正确的事情。在这种情况下,它应该转换 URL 中的所有非 ASCII 字符。如果不是,那么您可以django.utils.encoding.iri_to_uri()显式调用。

于 2012-07-08T16:25:17.507 回答