2016-07-05 41 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