本文章主要介绍了js 加载 csv 文件时内容出现中文乱码问题,具有不错的的参考价值,希望对您有所帮助,如解说有误或未考虑完全的地方,请您留言指出,谢谢!

前言: csv 文件保存时,不是 utf-8 编码,导致读取的时候出现中文乱码

一个简单粗暴的解决方法:
用记事本打开csv文件,另存为utf-8编码文件

下面是另外一个方法

      fetch('static/data/list.csv', {
    
      }).then((res) => {
    
        console.log('object res', res); 
        return res.blob(); 
      }).then((blob) => {
    
            const reader2 = new FileReader(); 
	        reader2.readAsText(blob, 'gbk'); 
	        reader2.onload = (e) => {
    
	          console.log('result ======', e.target.result); 
	        }; 
      }); 

最后结果能打印出来中文,这个方法还有普适性,如果是utf-8文件,也能正常显示

另外,还可以使用 iconv-lite

import * as iconv from 'iconv-lite'; 
... 
 
      fetch('static/data/list.csv', {
    
      }).then((res) => {
    
        console.log('object res', res); 
        return res.blob(); 
      }).then((blob) => {
    
            const reader2 = new FileReader(); 
	        reader2.readAsArrayBuffer(blob); 
	        reader2.onload = (e) => {
    
	        	console.log('result ======', iconv.decode(Buffer.from(e.target.result, 'hex'), 'gbk')); 
	        }; 
      }); 

这个方法能解决中文乱码,但如果是utf-8文件,则会出现乱码,这时需要将 gbk 换成utf-8,即:

iconv.decode(Buffer.from(e.target.result, 'hex'), 'utf-8')

如果请求返回时,结果没有转blob返回,而是text返回,这时如何将text中文乱码转成正常显示,暂无头绪,待解决


发布评论
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

js 去除字符串首尾指定字符详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。