下載檔案的檔名跨瀏覽器都一樣不亂碼的方法 Posted on 2020-02-04 | 最近專案上有遇到下載檔名時在IE10中文檔名會亂碼的問題,花了一些時間找到解法,把它記錄下來。這個方法在Chrome, Safari, IE10+, Edge實測都沒問題,理論上IE10之前應該也支援。 123456789101112131415161718/** * @param {blob} fileFlob - 下載檔案的blob data * @param {string} fileName - 下載檔案名稱 * @param {string} fileExt - 下檔檔案副檔名 */const handleDownloadFile = (fileFlob, fileName, fileExt) => { if (window.navigator.msSaveOrOpenBlob) { // IE window.navigator.msSaveBlob(blob, fileName + '.' + fileExt); } else { const elem = window.document.createElement('a'); elem.href = window.URL.createObjectURL(blob); elem.download = fileName + '.' + fileExt; document.body.appendChild(elem); elem.click(); document.body.removeChild(elem); }};