Как перенаправить к URL строки запроса, содержащему символы неASCII в DJANGO?

Как перенаправить к URL строки запроса, содержащему символы неASCII в DJANGO?

Когда я использую return HttpResponseRedirect(u'/page/?title=' + query_string) где query_string содержит символы как 你好, Я получаю ошибку

кодек 'ASCII' не может закодировать символы в положении 21-26: порядковый не в диапазоне (128), заголовки ответа HTTP должны быть в формате US-ASCII...

6
задан Alex Jolig 14 June 2018 в 04:59
поделиться

2 ответа

HttpResponseRedirect(((u'/page/?title=' + query_string).encode('utf-8'))

- это первое, что нужно попробовать (поскольку UTF8 - единственная популярная кодировка, которая может обрабатывать все символы Unicode). Это определенно должно избавить от наблюдаемого вами исключения - затем проблема переходит к обеспечению того, чтобы обработчик для / page мог правильно обрабатывать запросы в кодировке UTF-8 (предположительно, декодируя их обратно в Unicode). Однако, строго говоря, эта часть не имеет отношения к тому конкретному вопросу, который вы задаете!

6
ответ дан 9 December 2019 в 20:43
поделиться

django way:

from django.http import HttpResponseRedirect
from django.utils.http import urlquote

return HttpResponseRedirect(u'/page/?title=%s' % urlquote(query_string))
6
ответ дан 9 December 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: