fs.writeFile()只保存字符串的一部分

时间:2014-02-16 05:41:14

标签: javascript node.js node-webkit

我正在使用node-webkit创建一个文本编辑器。当用户单击“保存”菜单项时,我会使用fs.writeFile()方法将纯文本文件写入磁盘:

fs.writeFile(file, txt, function (err) {
  if (err) throw err;
  console.log("file saved");
});

但是,它没有保存通过“txt”变量传递的整个字符串。它只将前300个字符保存到文件中。

我尝试过使用此方法和同步方法fs.writeFileSync。两者都有同样的问题。我已经尝试记录传递给方法的txt字符串,以确保那里没有任何错误。

为什么我没有在保存的文件中获取全文?

1 个答案:

答案 0 :(得分:1)

根据这篇帖子:node-webkit Google群组中的https://groups.google.com/forum/#!topic/node-webkit/3M-0v92o9Zs,可能是编码问题。尝试更改编码。我有同样的问题,并将我的编码更改为utf16le,如该线程中指定的那样,它修复了问题;整个字符串被写入文件。

我的代码现在是:fs.writeFileSync(path, data, {encoding:'utf16le'});