我有一个包含十六进制值的字符串,类似于:"1BB3AE3E"。
现在我想将其转换为恰好具有该字节表示形式(因此写入文件并使用十六进制查看器打开将显示"1BB3AE3E")的字符串(预期结果为"≥Æ>")。
这类似于Ruby的操作。
但是没有效果。效果如上所示。
现在我想将其转换为恰好具有该字节表示形式(因此写入文件并使用十六进制查看器打开将显示"1BB3AE3E")的字符串(预期结果为"≥Æ>")。
这类似于Ruby的操作。
['1BB3AE3E'].pack('H*')
我尝试使用Buffer.toString,String.fromCharCode等方法,但并没有得到我期望的结果。最接近我的结果是通过以下方式实现的:
var input = "1BB3AE3E"
var buffer = new Buffer(input, "hex")
var result = buffer.toString("binary")
这导致生成了一个包含“³®>”的文件,其十六进制为:1B C2 B3 C2 AE 3E。 那些C2是从哪里来的?我该如何使它正常工作?
我也尝试过
var hexes = this.match(/.{1,2}/g) || [];
var back = "";
for(j = 0; j< hexes.length; j++) {
back += String.fromCharCode(parseInt(hexes[j], 16));
}
但是没有效果。效果如上所示。
wstream = fs.createWriteStream("file.txt"); wstream.write(buff); wstream.end()
成功实现了我的目标,但这是异步操作,需要我将缓冲区存储到文件中,然后再从文件中读取。看起来有些过度设计了。 - Marcin Bak