gpt4 book ai didi

python - flask send_file 和 unicode 文件名 : broken in IE

转载 作者:行者123 更新时间:2023-11-28 22:00:35 33 4
gpt4 key购买 nike

我编写了一个函数,可以动态生成一些 csv 文件并发送给用户以供下载。

代码如下:

@app.route('/survey/<survey_id>/report')
def survey_downloadreport(survey_id):
survey, bsonobj = survey_get(survey_id)
resps = response_get_multi(survey_id)

fields = ["_id", "sid", "date", "user_ip"]
fields.extend(survey.formfields)

csvf = StringIO.StringIO()
wr = csv.DictWriter(csvf, fields, encoding = 'cp949')
wr.writerow(dict(zip(fields, fields)))
for resp in resps :
wr.writerow(resp)

csvf.seek(0)

now = datetime.datetime.now()
report_name = survey.name + "(" + \
now.strftime("%Y-%m-%d-%H:%M:%S") +\
")" + ".csv"

report_name = report_name.encode("utf-8")



return send_file(csvf,
as_attachment = True,
attachment_filename = report_name)

如你所见,文件名由unicode转成字符串,转成utf-8(准确的说是韩文字母)

问题是,在 IE 中查看页面时文件名完全被破坏(在 chrome 中没有问题)。

似乎必须编辑 header 以匹配不同浏览器的解析规则,但我不知道如何在 flask 中执行此操作。

最佳答案

尝试添加

mimetype = 'text/csv; charset=x-EBCDIC-KoreanAndKoreanExtended'

发送文件。

关于python - flask send_file 和 unicode 文件名 : broken in IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14644959/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com