Node.js读取文件乱码问题

先说点什么

终于正式开始鼓捣Node了,新的踩坑也就开始了

进入正题

产生原因

Windows系统下默认的编码格式是ASNI,而在Node和linux系统上默认的是utf-8,再有就是异步读取文件时不能保证文件的存贮的编码格式

解决方法

  1. 将读取的源文件格式储存为utf8编码格式,读取源文件的js文件也储存为utf-8编码格式
  2. 安装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("程序执行完毕!");

你可能感兴趣的:(node.js,javascript)