Node.js读取文件乱码问题

32次阅读

共计 505 个字符,预计需要花费 2 分钟才能阅读完成。

先说点什么
终于正式开始鼓捣 Node 了, 新的踩坑也就开始了
进入正题
产生原因
Windows 系统下默认的编码格式是 ASNI, 而在 Node 和 linux 系统上默认的是 utf-8, 再有就是异步读取文件时不能保证文件的存贮的编码格式
解决方法

将读取的源文件格式储存为 utf8 编码格式,读取源文件的 js 文件也储存为 utf- 8 编码格式
安装 iconv-lite 模块, 实现 window 系统下编码格式的转换,npm install iconv-lite

let fs = require(“fs”);
let iconv = require(“iconv-lite”);

// 异步读取
fs.readFile(“input.txt”, function (err, data) {
if (err) {
return console.error(err)
}
console.log(“ 异步读取: ” + iconv.decode(data, ‘gbk’));
});

// 同步读取
let data = fs.readFileSync(“input.txt”);
console.log(“ 同步读取: ” + iconv.decode(data, ‘gbk’));

console.log(“ 程序执行完毕!”);

正文完
 0