2016-06-10 34 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