主要是為了匹配數據庫的長度范圍內,比如GBK的數據庫某字段是varchar(10),那麼就相當於5個漢字長度,一個漢字等於兩個字母長度。如果是UTF8的數據庫則是每個漢字長度為3。
知道了以上原理以後,我們就可以算出一個字符串的實際長度了,如果是GBK字符集遇到中文加2,如果是UTF8字符集遇到中文加3即可
GBK長度計算函數:
代碼如下:
// GBK字符集實際長度計算
function getStrLeng(str){
var realLength = 0;
var len = str.length;
var charCode = -1;
for(var i = 0; i < len; i++){
charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128) {
realLength += 1;
}else{
// 如果是中文則長度加2
realLength += 2;
}
}
return realLength;
}
UTF8長度計算函數:
代碼如下:
// UTF8字符集實際長度計算
function getStrLeng(str){
var realLength = 0;
var len = str.length;
var charCode = -1;
for(var i = 0; i < len; i++){
charCode = str.charCodeAt(i);
if (charCode >= 0 && charCode <= 128) {
realLength += 1;
}else{
// 如果是中文則長度加3
realLength += 3;
}
}
return realLength;
}