我有這個字符串在java中:的Java string.getBytes( 「UTF-8」)的JavaScript相當於
"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
我不能忘記它有什麼不同,因爲我需要支持中文。 – Wesley
順便說一句,如果你讀這個,他們建議unescape(encodeUricomponent())從utf16獲取utf8值:http://ecmanaut.blogspot.be/2006/07/encoding-decoding-utf8-in-javascript.html – Wesley
所以,是有解決方案嗎? – Wesley