2016-06-10 38 views
0

我已經在emmbed linux-os上用MIPS 24K Little Endian CPU構建和運行Node.js。 Node.js版本是v0.12.0。一切正常,除非我用fs.writeFile,示例代碼:Node.js:奇怪的符號「^ @」使用fs.writeFile

var fs = require('fs'); 
fs.writeFile("/tmp/test.txt","hello world!",'utf-8', function(err){ 
     if(err){ 
       return console.log(err); 
     } 
     console.log("saved"); 
}); 

使用vim來檢查這個test.txt的,內容是:

^@hello world! 

顯然,有一個不需要的符號「^ @ 「在書面文件的開頭。

那麼這個問題如何發生以及如何解決?

+0

^@意味着有更多的線條,最好是當前線後面的長線,我想。沒有什麼可擔心的^ @,我已經在一個大腳本或日誌文件中看過好幾次了。它在vim中的視覺表現我認爲。 – SibiCoder

+0

嘗試通過像cat這樣的命令來打印文件的內容。它不會顯示這樣的字符 – SibiCoder

+0

@SibiCoder命令'cat'不顯示這樣的字符。但是寫入文件的實際內容是json格式,這個文件會被別人使用。我想我不能忽略它 – Sunson

回答

0

首先要做的就是嘗試重新輸入hello world字符串,它可能是你的h前以某種方式插入NUL,或CTRL- @字符到它。 ECMAScript實際上允許這樣做,因爲NUL而不是其中一個字符被禁止出現在字符串文字中。

您可以通過對源文件執行十六進制轉儲來查看此前的哪​​些實際字符。

+0

Thx回覆。這很奇怪,因爲在PC上使用相同的源文件,輸出文件很好。在此mips板上使用fs.appendFile時,它也可以正常工作,所以我不知道爲什麼fs.writeFile失敗。 – Sunson