NodeJS函数readFileSync - 我传递“utf8”还是{encoding:“utf8”}?

时间:2018-05-19 11:48:44

标签: javascript node.js

我在堆栈溢出和其他地方找到了各种答案。

我应该这样做:

let data = fs.readFileSync(FILE_NAME, "utf8");

或者这个:

let data = fs.readFileSync(FILE_NAME, {encoding: "utf8"});

谢谢!!!

3 个答案:

答案 0 :(得分:5)

来自the documentation,两者都有效:

  

fs.readFileSync(path [,options])

     
      
  • options< Object> | <串GT;      
        
    • 编码< string> | <空>默认值:null
    •   
    • flag< string>请参阅支持文件系统标志。默认值:'r'。
    •   
  •   

第二个参数可以是选项对象,也可以是编码名称。

答案 1 :(得分:0)

我认为你不需要明确提及编码,因为它是一个可选参数

var fs = require("fs");

/***
 * implementation of readFileSync
 */
var data = fs.readFileSync('input.txt');
console.log(data.toString());
console.log("Program Ended");

/***
 * implementation of readFile 
 */
fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);
   console.log(data.toString());
});

console.log("Program Ended");

这甚至没有提供"编码"参数

答案 2 :(得分:0)

对我来说,文件中的字符为utf-8,但文件格式为ansii

我通过以notepad打开文件,然后以utf-8格式保存文件来解决了这个问题。