节点.js从 UTF8 文件创建十六进制缓冲区

node.js create hex buffer from utf8 file

本文关键字:十六进制 缓冲区 文件创建 UTF8 js 节点      更新时间:2023-09-26

我有一个.h264文件,看起来像这样:

0000 0001 674d 401f 95a0 1001 86c0 5283
0203 2000 007d 0000 1d4c 1080 0000 0001
68ee 3c80 0000 0001 65b8 041f fff6 91f2
86db 23e0 5147 1a83 b8d4 3141 87b1 43b8
e329 5fd3 5937 bf10 485f af32 4e74 6138
5611 33e3 0778 e035 85ca 2c00 9320 ffbb
45be 09f8 2e51 a039 9f8c fe17 d100 0003
0000 0300 0003 02ed 114b 87ea 1054 5a3f
bf5e 0be5 a555 24f9 edf2 72af d9a1 b329
40df 2a96 1a71 d2c7 79d3 a0d2 c13d 06ea
2bdb bf63 f237 8e61 71b1 f1be e923 5565
7714 92f9 8d86 dfc3 1578 79b5 1ef5 ce02
df78 4982 577b f89d 0141 2dcf 0176 a9db
607c 1341 9c61 0fa0 295f 8e18 fd20 00a1

使用节点.js fs.createReadStream()我得到以下内容:

<Buffer 30 30 30 30 20 30 30 30 31 20 36 37 34 64 20 34 30 31 66 20 39 35 61 30 20 31 30 30 31 20 38 36 63 30 20 35 32 38 33 0a 30 32 30 33 20 32 30 30 30 20 30 ...>

如何获取以下内容?(基本上,告诉缓冲区直接将原始输入读取为十六进制代码):

<Buffer 00 00 00 01 67 4d 40 1F ...>

我用您提供的数据创建了一个名为 t.h264 的文件。然后,在test.js

var file = require("fs").createReadStream("t.h264", { encoding: "utf8" });
file.pipe(process.stdout);

这产生了输出

0000 0001 674d 401f 95a0 1001 86c0 5283 ...

这似乎是你想要的。