在js中将字符串转换为十六进制

时间:2015-04-04 14:21:16

标签: javascript string node.js hex

我正在使用node.js,我有一个字符串,我试图转换为十六进制。

这是我正在使用的功能:

function toHex(str) {
    var hex = '';
    var i = 0;
    while(str.length > i) {
        hex += ''+str.charCodeAt(i).toString(16);
        i++;
    }
    return hex;
} 

这就是我试图称之为:

console.log('Payload: ' + toHex(decryptedPayload));

然而,当它运行时,我收到此错误:

            hex += ''+str.charCodeAt(i).toString(16);
                          ^ TypeError: undefined is not a function
at toHex (C:\Users\Office\Desktop\luigi-master\lib\middleware.js:131:17)
at Middleware._transform (C:\Users\Office\Desktop\luigi-master\lib\middleware.js:161:29)
at Middleware.Transform._read (_stream_transform.js:179:10)
at Middleware.Transform._write (_stream_transform.js:167:12)
at doWrite (_stream_writable.js:301:12)
at writeOrBuffer (_stream_writable.js:288:5)
at Middleware.Writable.write (_stream_writable.js:217:11)
at Packetize.ondata (_stream_readable.js:540:20)
at Packetize.emit (events.js:107:17)
at readableAddChunk (_stream_readable.js:163:16)

1 个答案:

答案 0 :(得分:3)

如果您有缓冲区,可以直接致电toString()并传递所需的输出类型,例如:decryptedPayload.toString('hex')