[問題] 如何計算UTF-8編碼的字串長度
1. Wiki - UTF-8
http://en.wikipedia.org/wiki/UTF-8
2. W3Schools - JavaScript charAt() Method
http://www.w3schools.com/jsref/jsref_charat.asp
3. xkr_us - javascript - escape(), encodeURI(), encodeURIComponent()
http://xkr.us/articles/javascript/encode-compare/
我參考上面的資料後 寫了下面的函式:
function getUTF8ByteLength(str) {
var length = 0;
for (var i = 0; i < str.length; i++) {
var encLength = encodeURIComponent(str.charAt(i)).length;
if (encLength > 9) {
length += 4;
} else if (encLength > 6) {
length += 3;
} else if (encLength > 3) {
length += 2;
} else {
length += 1;
}
}
return length;
}
可是還是少算的部份 因為看不到USER輸入什麼
請問這樣寫有遺漏嗎? 謝謝~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.184.25.220
→
11/30 22:34, , 1F
11/30 22:34, 1F
→
11/30 22:35, , 2F
11/30 22:35, 2F
→
11/30 22:35, , 3F
11/30 22:35, 3F
→
11/30 22:37, , 4F
11/30 22:37, 4F
→
11/30 22:39, , 5F
11/30 22:39, 5F
→
11/30 22:40, , 6F
11/30 22:40, 6F
→
11/30 23:48, , 7F
11/30 23:48, 7F