3
我在JavaScript中有一个函数,期望从Native C++代码中将字节数组传递给它。例如:在JavaScript中打印字节数组的十六进制或十进制值
function OnEvent(event, data1)
{
console.log("data1[0] = " + data1[0]);
}
我想打印它的0x55甚至十进制值。出于某种原因,我看到在控制台日志如下:
我如何可以打印字节甚至十进制值的十六进制值不打印的字符?
UPDATE
我去感谢下面的链接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”和“字节”的值打印出“255,253”,这意味着它具有0xFFFD的值。
这不是我期待的数据/有效载荷。你知道为什么有2个字节?
尝试DATA1 [0]的ToString(16) – bfavaretto
http://codereview.stackexchange.com/questions/3569/pack-and-unpack-bytes字符串 – Thalaivar
谢谢Vinothbabu。我跟着你的包装/拆箱相关链接。然而,使用unpack():'code'函数解包(str)var bytes = []; $(“#homePage”)。append(“str.length =”+ str.length +“”); bytes.push(char >>> 8,char&0xFF); bytes.push } 返回字节; }'code'它打印出“char等于65533”,字节打印出255,253,这意味着它的值为0xFFFD –
codeshark
”); (var i = 0,n = str.length; i