cordova读取本地文本中文乱码问题

本文探讨了如何处理从网上下载的txt小说文件乱码问题,通过介绍FileReader的不同读取方法,重点讲解了使用jschardet和iconv-lite进行编码检测与转换,以确保正确显示中文内容。

前段时间做一个自己用的小说阅读器,发现从网上下载下来的txt小说,在获取文本的时候一直乱码。后来发现从网上下载下来的小说没有转换编码,大部分的txt小说下载下来都是windows-1252。导致在打开的时候中文会全部乱码。

在官方给出的读取文件的方法为:

function readFile(fileEntry) {
 
    fileEntry.file(function (file) {
        var reader = new FileReader();
 
        reader.onloadend = function() {
            console.log("Successful file read: " + this.result);
            displayFileData(fileEntry.fullPath + ": " + this.result);
        };
 
        reader.readAsText(file);
 
    }, onErrorReadFile);
}

其中的就是读取文件实例的内容为text。但是这个方法会导致

中文乱码,就算加上第二参数的编码格式也一样。

let reader = new FileReader();
reader.readAsText(file);

其实这个方法在国外是没问题的,因为编码人全都是英文。

要读取中文的内容,要么你在下载文件的时候就直接在PC端打开然后保存好编码。要么就只能代码实现

FileReader其实还有另一个方法读取文件。

这里我们需要用到两个插件(前端插件,并不是cordova插件)

//获取字符串编码
npm install jschardet
//转换字符串编码
npm install iconv-lite

使用实例: 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值