1
私はアンドロイドデバイスで生成し、base64にエンコードし、サーバーに送信し、JavaScriptを使用してウェブ上に表示するバイト配列を持っています。ただし、バイト配列は一致しません。クロスプラットフォームベース64バイト配列エンコーディング
例えば、バイト配列:
-39,86,-91,26,77,98,-3,108,83,-108,-53,-8,-102,-39,-42,-106,-90,70,122,26,43,-46,82,124,-4,-116,-51,-92,100,-104,57,9,-127,0
アンドロイド側エンコーディング:
import android.util.Base64;
Base64.encodeToString(byteArray, Base64.DEFAULT);
結果の文字列:
2ValGk1i/WxTlMv4mtnWlqZGehor0lJ8/IzNpGSYOQmBAA==
ジャバスクリプト復号:
var decoded = atob(encodedString);
var bytes = [];
for (var i = 0; i < decoded.length; i++) {
bytes.push(decoded.charCodeAt(i));
}
結果のバイト配列:負でなければなりません
217,86,165,26,77,98,253,108,83,148,203,248,154,217,214,150,166,70,122,26,43,210,82,124,252,140,205,164,100,152,57,9,129,0
すべての数値は、256が追加されていて。これをどうやって解決するのですか?
注:アンドロイド側をデコードすると、期待通りの結果が得られます。