转JS字符串长度

<script>    
alert (fucCheckLength(
"中国a"));    
function fucCheckLength(strTemp)    
{    
var i,sum;    
sum
=0;    
for(i=0;i<strTemp.length;i++)    
{    
  
if ((strTemp.charCodeAt(i)>=0&& (strTemp.charCodeAt(i)<=255))    
    sum
=sum+1;    
  
else   
    sum
=sum+2;    
}    
return sum;    
}    
</script> 
会得到结果是:5 

评论: 
有时候我们需要5?

你是指要得到的字节长度吧?请注意字节和字符的差异。而字节长度是和编码有关系的,比如
"中国a",gbk/gb2312编码是5个字节,可是如果是utf-8,则是7个字节(utf-8下通常一个汉字3个字节)。

楼主似乎对字节长度的概念还不是很清楚,虽然一般情况下汉字字符大都使用gbk。但是不能把汉字和2个字节直接划上等号。

假设后台数据库是采用utf
-8保存数据,表结构中某个字段的长度是30个字节,那么用楼主你的这个函数,长度计算就出问题了。

你可能感兴趣的:(数据库)