[HTTP] 文件下载-中文名的处理
在利用 python HTTP 下载文件的时候(如 Django),遇到文件名是中文的时候会遇到一些问题,比如乱码等,在这里记录一下解决版本,和使用的编程语言没有关系,关键是要把 Content-Disposition
给设置一下。需要将中文名进行 url编码,在 python 中可以利用 urllib.parse
的 quote
函数
from urllib.parse import quote
file_name = quote(file_name)
response["Content-Disposition"] = f"attachment;filename*=utf-8''{file_name}"
或者在 go 中可以利用 url
库的 QueryEscape
来将名字进行编码
name = url.QueryEscape(name)
c.Response.Header.Set("Content-disposition", fmt.Sprintf("attachment;filename*=utf-8''%s", name))