3

ネイティブ C++ コードからバイト配列が渡されることを期待する JavaScript の関数があります。例えば:

function OnEvent(event, data1)
{
     console.log("data1[0] = " + data1[0]);
}

0x55 またはその 10 進値を出力したいと思います。何らかの理由で、コンソール ログに次のように表示されます。

ここに画像の説明を入力

文字を印刷せずにバイトの16進値または10進値を印刷するにはどうすればよいですか?


アップデート

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; 
}

「char is equal to 65533」と出力され、「bytes」の値は「255, 253」と出力されます。これは、値が 0xFFFD であることを意味します。

これは、私が期待していたデータ/ペイロードではありません。なぜ2バイトなのか知っていますか?

4

1 に答える 1

7

これでうまくいくと思います:

console.log("data1[0] = " + data1[0].toString(16));
于 2013-09-28T01:38:23.800 に答える