前段时间做一个自己用的小说阅读器,发现从网上下载下来的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
使用实例:

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

1万+

被折叠的 条评论
为什么被折叠?



