ascii160 和 ascii32 的区别

http://blog.163.com/wangruiwangrui8@126/blog/static/1227318820098118232064/

ascii160 和 ascii32 的区别  

2009-09-11 20:23:20|  分类: javascript |字号 订阅

       好久没有写点东西了,忙得都没时间去写。但是今天遇到一个问题,头疼了好一阵子,不过还好,最终还是找到问题的,感觉这个问题还有些的必要,在百度里查了很多关于这个的关键字,都没有查到,只有在google里简单的找到一些,所以想把这个记录下来,共大家分享。

       大家都知道一个ascii码会对应一个字符,比如ascii码97表示a(注意是小写)等,但是平时大家都很少注意到ascii码里有连个空格(space), 一个是ascii码32,一个是ascii码160,那么这个两个都表示空格有什么区别呢。

       要说它们的却别,其实主要是是在IE和firefox的区别,说的再多,还是通过一个简单的例子来说明问题更直接了当。今天遇到一个Bug,以前运行的时候都没问题,都是升级后就出现问题了,我的代码都没有变过。

      有一段代码,是从别人的javascript code里返回个值,然后判断这个:

      if (attrBMCType == "Early Commit") {}

      就这个简单的判断,正常情况下,attrBMCType会返回"Early Commit", if条件应该为true,在firefox里测试的时候没有问题,但是换到用IE测试的时候就出新问题了,alert(attrBMCType), 发现在firefox里正常显示,但是在IE里却显示"EarlylCommit",奇怪,空格跑那里去了.原理是ascii码惹的祸。

      让我们来做另一个实验。javascipt里,String.fromCharCode()方法,会根据unicode字符返回一个字符串(这个也是在网上搜了好久才搜到的),我们就用这个方法来看看会有什么却别。

     var test = String.fromCharCode(112, 160, 108, 97, 32, 105, 110);

       同样的javascript代码,在firefox返回"p la in", 但是在IE里却返回"pla in",看到这里我想大家已经看到区别来了。然后再查查ascii码对照表,会发现ascii160和ascii32都表示空格,但是在IE里,160就不是显示空格,firefox里会显示空格,32不管是firefox里,还是IE里都显示空格。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值