Flask内容分发标头中的Unicode

3

我正在尝试将Flask响应对象中的Content-Disposition头设置为可能包含瑞典字符(åäö)的文件名。我的测试代码如下:

response =  flask.send_file(output_file_path)
response.headers[u"Content-Disposition"] = u'filename="åäö.pdf"'

这里出现了以下错误:
文件 "C:\Python27\Lib\BaseHTTPServer.py" 的第 401 行 send_header 函数中,self.wfile.write("%s: %s\r\n" % (keyword, value)),报错 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 10: ordinal not in range(128)。
我尝试过编码、解码和几乎所有我能想到的操作,但我就是无法让 Flask 接受我想在标头中使用 Unicode(utf-8)!
2个回答

1
请参考RFC 6266中的Content-Disposition和5987中的编码。测试用例here在此处。

0

链接提到ISO 8859-1是可以的,而且由于我的字符是在ISO 8859-1中的,我可以使用它来代替吗? - monoceres
@monoceres 将字符串编码为“ISO 8859-1”,然后尝试运行它。很可能会正常工作。 - Ifthikhan
不,ISO-8859-1不能可靠地工作;一些用户代理默认使用其他编码(如UTF-8、引用页面的页面编码或系统区域设置)。 - Julian Reschke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接