转自:https://segmentfault.com/a/1190000005994758/
在项目中发现,使用Safari下载中文名文件的时候,下载的文件名是乱码的问题。但是这个问题在IE,Firefox,Chrome中是没有的。原先以为是Safari的bug,但是细细研究之下你会发现这个简单的文件下载问题在HTTP协议里经历了多少波折。
研究的结果也不是我自己写的,具体可以看这两篇文章
//beego下的下载文件,示例代码
//解决中文名乱码问题,传编码后的fileName,设置头为:Content-Disposition: attachment; filename= ;filename*=utf-8''
fileName := path[strings.LastIndex(path, "/")+1 : len(path)]
headValue := url.QueryEscape(fileName) + ";"
headValue = headValue + " filename*=utf-8''" + url.QueryEscape(fileName)
c.Ctx.Output.Download(path, headValue)