2012-12-13 6 views
18

私はnodeJS v0.8.6とネイティブライブラリfsを使用しています。ここに私のコードは次のとおりです。NodeJs - BOMで関数fs.writeFileを作成する方法は?

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

問題は、それがBOMなしUTF8に書き込む(私はそれを確認するために、メモ帳++を使用)と、それは(アクセントがうまく表示されません)Windows上のワードパッドでは動作しないということです。事は、ワードパッドを使ってwomeoneでよく読まれるようにファイルが必要だということです。

ファイルにBOMを追加するにはどうすればよいですか?

答えて

28

UTF-8にはbomは必要ありませんが、もちろん自分で追加することはできます。

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

素晴らしいです! ありがとう! – user706355

+7

UTF-8は正常なOSやアプリケーションでBOMを必要としないかもしれませんが、Windowsでは常にそうです。例外は、ほとんどの場合、通常の環境から移植されたクロスプラットフォームコードです。 – hippietrail

+0

クライアントにCSVファイルを送信していて、WindaubeではなくUNIXのようにうまく動作する問題を修正しました。これはそれを修正しました! – Vadorequest

1

この回答では、この回答について詳しく説明しました。Adding UTF-8 BOM to string/Blobです。

これは非常にまれな答えです。なぜかについては詳しく説明しません。 FEFFバイトは実際にはUTF16LE BOMなので、以前の答えはわかりにくいです。

関連する問題