当前位置: 首页 > 工具软件 > PapaParse > 使用案例 >

papaparse实现csv在线预览中文乱码问题

蓝昊然
2023-12-01

PapaParse这个插件虽说强大,可以快速将CSV文件转为JSON格式来渲染表格,但是某些地方真的让人很难受,比如它自带的encoding配置只能对通过input上传的本地文件起作用,而通过URL远程取到的文件不支持

encoding  本地文件编码,必须是FileReader支持的值

// csv --得到数据中文乱码-失败
      Papa.parse(filePath, {
        encoding: 'gb2312',
        download: true,
        complete: function (results) {
          Heiho(results?.data)
        }
      })

优化插件是做不到,那办法只有一个了,先用XMLHttpRequest()获取到文件,然后再用FileReader()改变文件的编码,最后用PapaParse直接解析。

let request = new XMLHttpRequest()
      request.open('GET', filePath, true) //目标url
      request.responseType = 'blob'
      request.onload = () => {
        let file = request.response
        console.log('csv filefilefile', file)
        let reader = new FileReader()
        reader.readAsText(file, 'GB2312') //写死编码格式
        reader.onload = () => {
          Papa.parse(reader.result, {
            complete: function (results) {
              Heiho(results?.data)
            }
          })
        }
      }
      request.send()

 类似资料: