たとえば、次の 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)
u
文字列の前に a を置くr
か、Unicode メソッドでラップする必要があります。
詳細については、これを参照してください。
Unicode 文字列は文字列によく似ていますが、前に「u」文字を使用して構文で指定されます: u'abc', u"def".
まず、Python の文字列リテラルで非 ASCII 文字を使用するには、ソース ファイルの先頭で文字エンコーディングを指定する必要があります。
# -*- coding: utf-8 -*-
次に、Unicode 文字列を djangoに渡すと、通常、django はそれ自体で正しいことを行います。この場合、URL 内のすべての非 ASCII 文字を変換する必要があります。そうでない場合は、django.utils.encoding.iri_to_uri()
明示的に呼び出すことができます。