2016-07-05 24 views
2

我一直在使用这个命令的NodeJS - 无法创建UTF-8文件

var fs = require('fs'); 
    fs.appendFile('log.csv', 'Hello','utf-8', function (err) { 
     if (err) throw err; 
    }); 

现在创建的文件当我检查文件的编码

file -bi log.csv 

结果是

text/plain; charset=us-ascii 

如何创建utf-8编码文件?

回答

9

我认为这里有两件事。首先您错误地指定了utf8。它应该是

fs.appendFile('message.txt', 'data to append', 'utf8', callback); 

即从文档here

utf8采取实际上是默认的,所以你不应该甚至需要把它作为一个选项

什么是新的给我,然而,就是貌似你必须写utf的文件才会出现编码为UTF-8

var fs = require('fs'); 

fs.appendFile('log.csv', '\ufeffThis is an example with accents : é è à ', 'utf8', function(err) { 
    if (err) throw err; 
}); 

现在我们看到

$ file -I log.csv 
$ log.csv: text/plain; charset=utf-8 
+0

非常感谢第二段“对我而言是什么新东西......”。这正是我在这种情况下发生的情况,如果我没有在文件中包含一个UTF字符,那么一切正常,文件以ANSI编码结束。我想知道是否有人知道为什么... – ipplos