在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)