node.jsでバイナリデータを読み取る際に問題があります。これは私の行います。node.jsのバイナリデータを読み取る
$ cat test.js
var fs = require('fs'),
binary = fs.readFileSync('./binary', 'binary').toString('binary');
process.stdout.write(binary.substring(0, 48));
$ xxd binary
00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000 .ELF............
00000010: 0300 3e00 0100 0000 0008 0000 0000 0000 ..>.............
00000020: 4000 0000 0000 0000 10a0 0000 0000 0000 @...............
$ node test.js | xxd
00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000 .ELF............
00000010: 0300 3e00 0100 0000 0008 0000 0000 0000 ..>.............
00000020: 4000 0000 0000 0000 10c2 a000 0000 0000 @...............
00000030: 00 .
$
ノードで読み取るときに、インデックス0x29に0xc2バイトが挿入されていることに注意してください。何故ですか?私はreadFileSync
とtoString
の両方にバイナリエンコーディングを指定しました。 私もasciiを試しましたが、違った結果を得ました。