先说点什么
终于正式开始鼓捣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("程序执行完毕!");