从mezzanine
注释表单中提出的问题,该表单将作者姓名存储在响应缓存中(如下所述):
set_cookie(response, "mezzanine-comment-name", post_data.get("name"))
调用django set_cookie
函数:
response.set_cookie(name, value, expires=expires, secure=secure)
因此,如果作者的名字包含非ascii字符,服务器会引发一个众所周知的问题(我用nginx和django本地服务器测试过它):
UnicodeEncodeError: 'ascii' codec can't encode characters in position ...: ordinal not in range(128)
我还尝试修改夹层源代码并将.encode()
放在post_data.get("name")
之后,但response.set_cookie
的第一行中有一个奇怪的行会撤消编码!
value = force_str(value)