转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个字节,那么用楼主你的这个函数,长度计算就出问题了。

转载于:https://www.cnblogs.com/lishenglyx/archive/2009/03/25/1421068.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值