2012-12-13 17 views
18

我正在使用nodeJS v0.8.6和本地庫fs。這裏是我的代碼:NodeJs - 如何使函數fs.writeFile與BOM寫入?

var filesys = require('fs'); 
filesys.writeFile('test.txt', 'This is an example with accents : é è à ','utf8', function (err) {}); 

的問題是,它在UTF8沒有寫入BOM(我用記事本+ +來驗證它),它不會在Windows寫字板(重音沒有得到很好的顯示)。問題在於我需要使用wordpad才能讓womeone很好地閱讀該文件。

如何將BOM添加到我的文件中?

回答

28

UTF-8不需要一個bom,但你可以自己添加它當然。

filesys.writeFile('test.txt', '\ufeffThis is an example with accents : é è à ','utf8', function (err) {}); 
+0

太棒了! 謝謝! – user706355

+7

UTF-8在理智的操作系統和應用程序中可能不需要BOM,但在Windows下它幾乎總是會有。例外主要是從理性環境中移植的跨平臺代碼。 – hippietrail

+0

修復了我向客戶端發送CSV文件的問題,在類Unix上運行良好,而不是在Windaube上運行。這固定它! – Vadorequest

1

我詳細解答了這個答案 - Adding UTF-8 BOM to string/Blob

這是一個非常稀疏的答案,沒有詳細說明爲什麼這個工程。 FEFF字節實際上是UTF16LE BOM,所以以前的答案很混亂。