JS代码UNICODE转UTF8看不懂解释一下谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/14 17:21:34
function UnicodeToUTF8(strInUni){
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;
}
string()
<0x80
&0xff是什么意思这些?
整个程序麻烦解释一下谢谢

1: UTF stands for UCS Transformation Format, where UCS stands for Universal Character Set.

2:utf-8 是unicode 这种编码的储存格式(以一到三个字节“存放”一个字符--理论上可以达到六个)

3: unicode 是编码。Unique, Universal, and Uniform character encoding--它在概念上与ISO 10646标准相对应 (目前版本UCS-2以两字节‘描述’一个字符)

4: 根据上面所述:可以根据unicode/UCS-2的编码特性(与ASCII编码在字面上“相等”)得知将一个 ASCII 或 Latin-1 的文件转换成 UCS-2 只需简单地在每个 ASCII 字节前插入 0x00。反之去处0x00。

5:而一个unicode格式的文本要转为utf-8格式的文本,那么根据下图所示:
U-00000000 - U-0000007F: 0xxxxxxx
U-00000080 - U-000007FF: 110xxxxx 10xxxxxx
U-00000800 - U-0000FFFF: 1110xxxx 10xxxxxx 10xxxxxx
U-00010000 - U-001FFFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
U-00200000 - U-03FFFFFF: 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
U-04000000 - U-7FFFFFFF: 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
==================================================================
以上是对一些概念的阐述,
而下面这几个语句/表达式的解释:
<0x80 //逻辑判断,字面意思:判断是否小于0