我在JavaScript中有一个函数,它希望从Native C ++代码传递一个字节数组。例如:
function OnEvent(event, data1)
{
console.log("data1[0] = " + data1[0]);
}
我想要它打印0x55甚至是它的十进制值。出于某种原因,我在控制台日志中看到以下内容:
如何在不打印字符的情况下打印字节的十六进制值甚至十进制值?
更新
由于Vinothbabu,我去了下面的链接。我使用了解包函数:
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;
}
打印“char等于65533”,“bytes”的值打印出“255,253”,这意味着它的值为0xFFFD。
这不是我期望的数据/有效负载。你知道为什么有2个字节吗?
答案 0 :(得分:6)
我相信这会解决问题:
console.log("data1[0] = " + data1[0].toString(16));