3

たとえば、次の URL で:

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

一部にلیست مقالاتはユニコード文字がありますが、次のエラーが発生します。

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に渡すと、通常、django はそれ自体で正しいことを行います。この場合、URL 内のすべての非 ASCII 文字を変換する必要があります。そうでない場合は、django.utils.encoding.iri_to_uri()明示的に呼び出すことができます。

于 2012-07-08T16:25:17.507 に答える