有一条通过 xor 加密的行。该字符串包含子字符串“𧂳𒒲”。
如果在 JS 中循环遍历一遍,会发出一件事:
var testS = "𧂳𒒲";
for (var i = 0; i < testS.length; i++) {
console.log(i + ": " + testS.charCodeAt(i));
}
0: 55388
1: 56499
2: 55305
3: 56498
4: 55307
5: 56546
如果您在 python 中循环遍历它,则会发出其他内容:
testS = "𧂳𒒲"
for i in range(0, len(testS)):
print(f"{i}: {ord(testS[i])}")
0: 159923
1: 74930
2: 77026
如何在 python 中获取类似于 JS 中的输出的数字?数字及其数量的差异打破了整个后续文本。
我还没有找到如何直接在 python 代码中显示所有这些,但总的来说,主要的一点是它将
JavaScript每个字符打印为两个单独的数字,并且在编码中获取字符串UTF-16BE,但它将Python每个字符视为单个数字并采用编码UTF-32BE,其中可以通过查看字符串第一个字符的十六进制代码来验证,例如,在this page或this one 上。您问题中数字的十六进制代码,以检查上面的页面:
我不排除您也有以不同编码从中获取代码的文件,因此也许不仅仅是语言应该归咎于读数的差异。
结果: