在JavaScript中打印字节数组的十六进制或十进制值

cod*_*ark 3 javascript c++ byte char

我在JavaScript中有一个函数,它期望从Native C++代码传递一个字节数组.例如:

function OnEvent(event, data1)
{
     console.log("data1[0] = " + data1[0]);
}
Run Code Online (Sandbox Code Playgroud)

我想它打印0x55甚至十进制值.出于某种原因,我在控制台日志中看到以下内容:

在此输入图像描述

如何在不打印字符的情况下打印字节的十六进制值甚至十进制值?


UPDATE

感谢Vinothbabu,我去了下面的链接.我使用了unpack函数:

function unpack(str) { 
    var bytes = []; 
    $("#homePage").append("str.length = " + str.length + "<br>"); 

    for(var i = 0, n = str.length; i < n; i++) { 
        var char = str.charCodeAt(i); 
        $("#homePage").append("char is equal to " + char + "<br>"); 
        bytes.push(char >>> 8, char & 0xFF); 
    }

    return bytes; 
}
Run Code Online (Sandbox Code Playgroud)

它打印"char等于65533","bytes"的值打印出"255,253",这意味着它的值为0xFFFD.

这不是我期望的数据/有效负载.你知道为什么有2个字节吗?

Wil*_*aul 6

我相信这会解决问题:

console.log("data1[0] = " + data1[0].toString(16));
Run Code Online (Sandbox Code Playgroud)