js 加载 csv 文件时内容出现中文乱码问题

您所在的位置:网站首页 js中文转码后出现乱码 js 加载 csv 文件时内容出现中文乱码问题

js 加载 csv 文件时内容出现中文乱码问题

#js 加载 csv 文件时内容出现中文乱码问题| 来源: 网络整理| 查看: 265

前言: 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中文乱码转成正常显示,暂无头绪,待解决



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3