如何在 DJANGO 中重定向到包含非 ascii 字符的查询字符串 URL?
当我使用return HttpResponseRedirect(u'/page/?title=' + query_string)
where query_string
contains characters like你好
时,出现错误
“ascii”编解码器无法对位置 21-26 中的字符进行编码:序数不在范围内(128),HTTP 响应标头必须采用 US-ASCII 格式...
如何在 DJANGO 中重定向到包含非 ascii 字符的查询字符串 URL?
当我使用return HttpResponseRedirect(u'/page/?title=' + query_string)
where query_string
contains characters like你好
时,出现错误
“ascii”编解码器无法对位置 21-26 中的字符进行编码:序数不在范围内(128),HTTP 响应标头必须采用 US-ASCII 格式...
HttpResponseRedirect(((u'/page/?title=' + query_string).encode('utf-8'))
是首先要尝试的(因为 UTF8 是唯一可以处理所有 Unicode 字符的流行编码)。这肯定会消除您观察到的异常——然后问题转移到确保处理程序/page
能够正确处理 UTF-8 编码查询(大概是通过将它们解码回 Unicode)。但是,严格来说,这部分与您提出的这个特定问题无关!
django方式:
from django.http import HttpResponseRedirect
from django.utils.http import urlquote
return HttpResponseRedirect(u'/page/?title=%s' % urlquote(query_string))