Node.js 节点Webkit-writeFileSync中的编码选项不起作用?

Node.js 节点Webkit-writeFileSync中的编码选项不起作用?,node.js,encoding,node-webkit,nw.js,Node.js,Encoding,Node Webkit,Nw.js,我是初学者 我想写一个HTML文件,包含UTF8编码的汉字。我从网上找到了以下代码 fs.writeFileSync(target, generateHTML(), "utf8"); 虽然当我阅读文档时,它没有明确地说我可以添加编码标志generateHTML()返回HTML字符串 但是,以下字符“返回" 变成这样:“æ´»å媫•”在文件中。我确信这是一个编码错误 我是否使用了错误的函数?如何使用正确的utf-8同步写入文件 编辑 fs.writeFileSync单独运行

我是初学者

我想写一个HTML文件,包含UTF8编码的汉字。我从网上找到了以下代码

fs.writeFileSync(target, generateHTML(), "utf8");
虽然当我阅读文档时,它没有明确地说我可以添加编码标志
generateHTML()
返回HTML字符串

但是,以下字符“返回" 变成这样:“æ´»å媫•”在文件中。我确信这是一个编码错误

我是否使用了错误的函数?如何使用正确的utf-8同步写入文件


编辑
fs.writeFileSync
单独运行时效果良好,但当内容作为函数返回时效果不佳。请尝试以下操作:

function generateHTML(){return "返回"}
fs.writeFileSync("index.html", generateHTML(), "utf8");
该文件包含utf-8格式的
ԏ
,这不是预期的内容


编辑 我用我安装的node.js版本测试了它,它工作正常。它似乎与node webkit有关


稍后我将包括该版本。此处的时间对我不方便。

这对我来说很有效:

fs.writeFileSync('test.html', '返回', 'utf8');

解决方案是将工作节点webkit应用程序页面设置为utf-8编码。我必须将此添加到页面:

<meta charset="utf-8">


事实证明,这是一个非常简单的问题,但我没有注意到。

您首先想要实现什么?generateHTML()返回的文本是什么编码?据我所知,node.js在内部使用utf8作为文本,因此您使用的命令将只传递函数返回的任何内容,而不做任何更改。@mthierer我希望utf-8字符串同样存储在utf-8编码的文件中。但是,我的结果文件也以utf-8格式存储,但文本可能由于编码失败而无法读取?是的,我认为您在
generateHTML()中有一些奇怪的地方。
请查看我的编辑。请尝试制作
'返回'
作为函数返回的字符串,我使用node webkit获得了它。我使用cmd对安装的node.js进行了测试,它确实有效。我应该删除此帖子吗?