如何重定向到DJANGO中包含非ascii字符的查询字符串URL?
当我使用 return HttpResponseRedirect(u'/page/?title=' + query_string) query_string 包含 你好 等字符时,我收到错误
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) . 但是,严格来说,这部分并不是你要问的这个具体问题的密切关系!
/page
django方式:
from django.http import HttpResponseRedirect from django.utils.http import urlquote return HttpResponseRedirect(u'/page/?title=%s' % urlquote(query_string))
2 回答
是第一个尝试(因为UTF8是唯一可以处理所有Unicode字符的流行编码) . 这肯定应该摆脱你正在观察的异常 - 然后问题转移到确保
/page
的处理程序可以正确处理UTF-8编码的查询(可能通过将它们解码回Unicode) . 但是,严格来说,这部分并不是你要问的这个具体问题的密切关系!django方式: