在Tornado HTTP标头中使用非Ascii字符

时间:2017-12-19 13:56:37

标签: python-3.x unicode http-headers tornado

在Python 3.5中使用Tornado,我在为HTTP Header设置Unicode字符时遇到问题。我需要它将下载文件名设置为unicide(Content-Disposition标头)。但是会发生以下错误:

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 42-46: ordinal not in range(256)

根据Tornado文档,在python 2中,如果使用非ascii字符,则对latin1进行解码并重新编码为utf8。但是在python 3中,以下行会导致异常:

lines.extend(l.encode('latin1') for l in header_lines)

0 个答案:

没有答案