【发布时间】:2017-05-11 16:21:16
【问题描述】:
我想为用户提供下载 CSV 文件的功能,该功能将在请求完成时创建,例如用户提出请求,从数据库中提取数据,然后创建文件。我想使用特定的编码(在我的例子中是 UTF-8)。当我不指定编码时,我认为使用服务器本地编码(在我的情况下为 ascii-us)。所以我尝试将编码作为标头传递,但没有成功 - 编码仍然是 ascii-us。这是我的代码。
class CsvHandler(RequestHandler):
lines = ['line1', 'line2'] # in actual use case those lines are from DB
def get(self):
self.set_header('Content-Type', 'text/csv')
self.set_header('Content-Disposition', 'attachment; filename=' + filename)
self.set_header('Content-Encoding', 'UTF-8')
for line in lines:
self.write(line.encode('UTF-8'))
以下是下载文件的详细信息:
文件 -i my_file.csv
my_file.csv:文本/纯文本; charset=us-ascii
我想要 charset=utf8
谢谢!
【问题讨论】:
标签: python csv encoding utf-8 tornado