解决前端利用blob下载csv因为多语言导致乱码的问题

2021-08-27  本文已影响0人  古城老巷_li
downloadFile().then(res => {
    //  base64解码
    var binaryString = window.atob(res.data.content)
    var len = binaryString.length
    //  Uint8Array: 8位无符号整数值的类型化数组
    var bytes = new Uint8Array(len)
    for (var i = 0; i < len; i++) {
      //  charCodeAt返回字符串第一个字符的 Unicode 编码(H 的 Unicode 值):
      bytes[i] = binaryString.charCodeAt(i)
    }
    const blob = new Blob([bytes.buffer], { type: '.csv' })
    if (window.navigator.msSaveOrOpenBlob) {
      navigator.msSaveBlob(blob)
    } else {
      const elink = document.createElement('a')
      elink.download = '123456.csv'
      elink.style.display = 'none'
      elink.href = URL.createObjectURL(blob)
      document.body.appendChild(elink)
      elink.click()
      document.body.removeChild(elink)
    }
})

如有错误,望请指正。

上一篇下一篇

猜你喜欢

热点阅读