DJANGOで非ASCII文字を含むクエリ文字列URLにリダイレクトするにはどうすればよいですか?
のような文字が含まれているreturn HttpResponseRedirect(u'/page/?title=' + query_string)場所を使用すると、エラーが発生しますquery_string你好
'ascii'コーデックは位置21-26の文字をエンコードできません:序数はrange(128)にありません、HTTP応答ヘッダーはUS-ASCII形式である必要があります...
DJANGOで非ASCII文字を含むクエリ文字列URLにリダイレクトするにはどうすればよいですか?
のような文字が含まれているreturn HttpResponseRedirect(u'/page/?title=' + query_string)場所を使用すると、エラーが発生しますquery_string你好
'ascii'コーデックは位置21-26の文字をエンコードできません:序数はrange(128)にありません、HTTP応答ヘッダーはUS-ASCII形式である必要があります...
ジャンゴの方法:
from django.http import HttpResponseRedirect
from django.utils.http import urlquote
return HttpResponseRedirect(u'/page/?title=%s' % urlquote(query_string))
HttpResponseRedirect(((u'/page/?title=' + query_string).encode('utf-8'))
最初に試すのは (UTF8 がすべての Unicode 文字を処理できる唯一の一般的なエンコーディングであるため)。これにより、観察している例外が確実に取り除かれます。問題は、ハンドラーが/pageUTF-8 でエンコードされたクエリを適切に処理できるようにすることです (おそらくそれらを Unicode にデコードすることによって)。ただし、厳密に言えば、その部分は、あなたが求めているこの特定の質問とは関係ありません!