Node.js 节点Webkit-writeFileSync中的编码选项不起作用?
我是初学者 我想写一个HTML文件,包含UTF8编码的汉字。我从网上找到了以下代码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单独运行
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进行了测试,它确实有效。我应该删除此帖子吗?