Flask content-disposition标头中的Unicode

时间:2012-11-19 08:29:46

标签: python http unicode flask

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

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”%(关键字,值))
      UnicodeDecodeError:'ascii'编解码器无法解码位置10中的字节0xe5:序数
      不在范围内(128)

我已经尝试过编码,解码以及我能想到的任何事情,但我无法让Flask接受我想在我的标题中使用Unicode(utf-8)!

2 个答案:

答案 0 :(得分:1)

请参阅针对内容处置的RFC 6266和编码的5987。测试用例here

答案 1 :(得分:0)

在utf-8中发送http标头值存在一些问题。看看这个问题How to send non-English unicode string using HTTP header?