Javascript与Java字符串编码
我正在尝试将以下内容从Java移植到JavaScript:
String key1 = "whatever";
String otherKey = "blah";
String key2;
byte keyBytes[] = key1.getBytes();
for (int i = 0; i < keyBytes.length; i++) {
keyBytes[i] ^= otherKey.charAt(i % otherKey.length());
}
key2 = new String(keyBytes);
以下是我写的:
var key1 = "whatever";
var other_key = "blah";
var key2 = "";
for (var i = 0; i < key1.length; ++i)
{
var ch = key1.charCodeAt(i);
ch ^= other_key.charAt(i % other_key.length);
key2 += String.fromCharCode(ch);
}
然而,他们给出了不同的答案
问题是,JavaScript字符串的编码是否不同?我如何纠正它们
# 1 楼答案
您在代码中忘记了一个charCodeAt(),如下所示:
在java中,在执行^=
我更改了代码,以查看java和javascript中的字节数组。运行后,结果相同:
Javascript:
结果:21,4,0,28,7,26,4,26
Java:
结果:[21,4,0,28,7,26,4,26]