javascript - 没有编码的十六进制字符串

标签 javascript node.js string

我有一个包含十六进制值的字符串,例如: “1BB3AE3E”。

现在我想将其转换为一个字符串(预期结果“≥Æ>”)正是该字节表示形式(如此写入文件,并使用十六进制查看器打开将显示“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));
}

但没有白费。效果如上。

最佳答案

要做好代码你应该是hexDecode和prototype以及fromCharCode和parseInt,你可以做例子:

String.prototype.hexDecode = function(){
    var j;
    var hexes = this.match(/.{1,4}/g) || [];
    var back = "";
    for(j = 0; j<hexes.length; j++) {
        back += String.fromCharCode(parseInt(hexes[j], 16));
    }

    return back;
}

关于javascript - 没有编码的十六进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36478373/

相关文章:

Javascript 程序产生未定义(递归)

node.js - 如何将这些 JSON 对象返回到浏览器而不是控制台

Java括号替换为空字符串

c - 在 C 中的 malloc 字符串之前保留元数据是否安全?

javascript - 比较数组中的字符串

javascript - Angular Datatables - 在 dom 选项中绑定(bind)值

javascript - 获取CKEditor中选择的坐标

javascript - 填字游戏可视化工具 带方向的广度优先搜索

angularjs - Node js 作为 http 服务器和主机 angularJS SPA

node.js - 如何根据cheerio中的文本获取元素的属性