2016-06-10 3 views
0

나는 MIPS 24K Little Endian CPU로 emmbed linux-os에서 Node.js를 빌드하고 실행했다. Node.js 버전은 v0.12.0입니다.Node.js : 이상한 심볼 "^ @"using 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"); 
}); 

이있는 test.txt를 확인 정력을 사용하여, 내용은 다음과 같습니다 : 모든 나는, 예제 코드 fs.writeFile를 사용하는 경우를 제외하고 잘 작동하는 원치 않는 기호 "^ 거기, 분명히

^@hello world! 

@ "작성된 파일의 시작 부분에.

그렇다면이 문제는 어떻게 발생하며 어떻게 해결할 수 있습니까? 할

+0

^@는 현재 행에 훨씬 더 많은 행이 있으며, 나중에는 긴 행이 선호된다는 것을 의미한다고 생각합니다.^@에 대해 걱정할 것이 없습니다. 큰 스크립트 나 로그 파일에서 여러 번 본 적이 있습니다. vim에서 시각적으로 표현한 것 같습니다. – SibiCoder

+0

cat과 같은 명령을 통해 파일의 내용을 인쇄 해보십시오. 이러한 문자는 표시되지 않습니다 – SibiCoder

+0

@SibiCoder 'cat'명령은 이러한 문자를 표시하지 않습니다. 작성된 파일의 실제 내용은 json 형식이지만 다른 사람이이 파일을 사용합니다. 나는 그것을 무시할 수 없다고 생각한다. – Sunson

답변

0

먼저 것은 당신이 어떻게 든 h 전에로 NUL, 또는 CTRL- @ 문자를 삽입 한 것을 할 수는 hello world 문자열을 다시 입력하려고하는 것입니다. NUL이 아니므로 문자열 리터럴에 표시 할 수없는 문자 중 하나가 ECMAScript에서 실제로 허용됩니다.

소스 파일의 16 진 덤프를 수행하여 실제 문자가 무엇인지 확인할 수 있습니다.

+0

답장은 Thx입니다. PC에서 같은 소스 파일을 사용하면 출력 파일이 잘되므로 매우 이상합니다. 이 밉 보드에서 fs.appendFile을 사용하는 동안 문제가 없으므로 fs.writeFile이 실패하는 이유를 알 수 없습니다. – Sunson