Как перенаправить к URL строки запроса, содержащему символы неASCII в DJANGO?
Когда я использую return HttpResponseRedirect(u'/page/?title=' + query_string)
где query_string
содержит символы как 你好
, Я получаю ошибку
кодек 'ASCII' не может закодировать символы в положении 21-26: порядковый не в диапазоне (128), заголовки ответа HTTP должны быть в формате US-ASCII...
HttpResponseRedirect(((u'/page/?title=' + query_string).encode('utf-8'))
- это первое, что нужно попробовать (поскольку UTF8 - единственная популярная кодировка, которая может обрабатывать все символы Unicode). Это определенно должно избавить от наблюдаемого вами исключения - затем проблема переходит к обеспечению того, чтобы обработчик для / page
мог правильно обрабатывать запросы в кодировке UTF-8 (предположительно, декодируя их обратно в Unicode). Однако, строго говоря, эта часть не имеет отношения к тому конкретному вопросу, который вы задаете!
django way:
from django.http import HttpResponseRedirect
from django.utils.http import urlquote
return HttpResponseRedirect(u'/page/?title=%s' % urlquote(query_string))