一个英文字符和汉字、日文的字节数是不同的。如果直接使用Javascript的Len函数的话,一个英文字母和汉字的长度都会被认为是1。如果这些数据需要保存在数据库中的话,长度不能有效控制就会带来一些隐患。简单的两个方法来实现长度计算。
str = escape("汉字abc,,");
len = 0;
for(i=0;i<str.length;i++,len++) {
if(str.charAt(i)=="%") {
if(str.charAt(++i)=="u") {
i += 3;
len++;
}
i++;
}
}
alert(len);
str = "汉字abc,,";
len = 0;
for(i=0;i<str.length;i++){
iCode = str.charCodeAt(i);
if((iCode>=0 && iCode<=255)||(iCode>=0xff61 && iCode<=0xff9f)){
len += 1;
}else{
len += 2;
}
}
alert(len);