if(null==strInUni)
returnnull;
var strUni=String(strInUni);
var strUTF8=String();
for(var i=0;i<strUni.length;i++){
var wchr=strUni.charCodeAt(i);
if(wchr<0x80){
strUTF8+=strUni.charAt(i);
}
else if(wchr<0x800){
var chr1=wchr&0xff;
var chr2=(wchr>>8)&0xff;
strUTF8+=String.fromCharCode(0xC0|(chr2<<2)|((chr1>>6)&0x3));
strUTF8+=String.fromCharCode(0x80|(chr1&0x3F));
}
else{
var chr1=wchr&0xff;
var chr2=(wchr>>8)&0xff;
strUTF8+=String.fromCharCode(0xE0|(chr2>>4));
strUTF8+=String.fromCharCode(0x80|((chr2<<2)&0x3C)|((chr1>>6)&0x3));
strUTF8+=String.fromCharCode(0x80|(chr1&0x3F));
}
}
return strUTF8;
}
看不懂这段代码,大家帮忙解释下!
if(wchr<0x80){
strUTF8+=strUni.charAt(i);
}
else if(wchr<0x800){
var chr1=wchr&0xff;
var chr2=(wchr>>8)&0xff;
strUTF8+=String.fromCharCode(0xC0|(chr2<<2)|((chr1>>6)&0x3));
strUTF8+=String.fromCharCode(0x80|(chr1&0x3F));
}
上面这个逻辑的地方 if(wchr <0x80) 和else if(wchr < 0x800) 不是重复了吗?whr小于 0x80 不就是 小于 0x800了么?
解决方案 »
- weblogic与Spring acegi问题
- weblogic10.3 war包发布问题
- 启动tomcat报错 请高手指点
- 各位大侠们 我用了acegi框架登陆 做了个验证码 当我输入正确的验证码时他还会报错 希望大侠们帮帮忙 !谢谢了 !急。。。。
- 动态表格如何与action form绑定
- 怎么样对一个已有的J2EE项目做2次开发或者说怎么才能使一个开发好的J2EE项目在myeclipse里跑起来 建工程的是怎么弄的~
- 创建webSphere数据源测试成功(但是通过java程序调用的时候出现错误)?急~!
- 如何让客户端认识EJB中的接口?
- 快来人救命啊,string怎么转换成BigDecimal
- Java swt 调用com类组件的问题
- ireport中的表格怎么画的?
- java分页
小于 0x80 时会进入 if 的分支,当这个分支运行完了之后就跳出 if 语句了,不会再判断是否小于 0x800 了。
...
} else if ( wchr < 0x800 ) {
...
}而不是if ( wchr < 0x80 ) {
...
}
if ( wchr < 0x800 ) {
...
}这样的结构
你为要说whr小于0x80就小于0x800了呢 。如果一样的,那不是报错吗。难道这是同一个吗?意思就是说如果(whr<0x80)则执行 strUTF8+=strUni.charAt(i);
否则如果则执行下面的 。