我有一个Java字符串:
"test.message"
byte[] bytes = plaintext.getBytes("UTF-8");
//result: [116, 101, 115, 116, 46, 109, 101, 115, 115, 97, 103, 101]
如果我在JavaScript中做同样的事情:
stringToByteArray: function (str) {
str = unescape(encodeURIComponent(str));
var bytes = new Array(str.length);
for (var i = 0; i < str.length; ++i)
bytes[i] = str.charCodeAt(i);
return bytes;
},
我理解为: [7,163,140,72,178,72,244,241,149,43,67,124]
我原本认为unescape(encodeURIComponent())会正确地将字符串转换为UTF-8编码。这不是这种情况吗?
参考:
http://ecmanaut.blogspot.be/2006/07/encoding-decoding-utf8-in-javascript.html
.getBytes()
一样吗?在数组中添加值?即Array.from(new TextEncoder().encode('some delicious cookie')).reduce((acc, current) => acc + current, 0)
。 - Neil Gaetano Lindberg