后端server返回excel的base64時(shí),文件名包含中文報(bào)錯(cuò)
發(fā)現(xiàn)文件名有中文名字,所以導(dǎo)致錯(cuò)誤索昂,編碼是latin-1編碼建车, 所以我們需要將文件名編碼成utf-8再解碼成latin-1。
self.set_header('Content-Type', 'application/octet-stream')
self.set_header('Content-Disposition', 'attachment; filename=' + os.path.basename(path).encode("utf-8").decode("latin1"))
又遇到問(wèn)題椒惨,前端從頭中獲取文件名缤至,文件名亂碼。放棄上面的方法康谆,改為
from tornado.escape import url_escape
self.set_header('Content-Type', 'application/octet-stream')
self.set_header('Content-Disposition', 'attachment; filename=' + url_escape(os.path.basename(url)))