(解决qrcodejs⼆维码识别中⽂解码乱码问题)js---str转utf8与utf-8转str 2、
3、str2utf8:
1)字符转USC-2,⽤charCodeAt()
2)如英⽂的话,直接返回字符str.charAt(i);//返回指定位置的字符
3)如中⽂的话,根据Unicode、utf-8编码⽅式的编码规则图,⽤String.fromCharCode转换
UCS-2转UTF-8虽然是精神病但没关系大结局
function str2utf8(str)
{
// UCS-2和UTF8都是unicode的⼀种编码⽅式
// js代码中使⽤的是UCS-2编码
var code;
var utf ="";
for(var i =0; i < str.length; i++)
{
code = str.charCodeAt(i);//返回每个字符的Unicode 编码
if(code <0x0080){
utf += str.charAt(i);//返回指定位置的字符
}
else if(code <0x0800){
半命题作文utf += String.fromCharCode(0xC0|((code >>6)&0x1F));
utf += String.fromCharCode(0x80|((code >>0)&0x3F));
}
else if(code <0x10000){
utf += String.fromCharCode(0xE0|((code >>12)&0x0F));
utf += String.fromCharCode(0x80|((code >>6)&0x3F));
utf += String.fromCharCode(0x80|((code >>0)&0x3F));
}
else
{
throw"不是UCS-2字符集"
dnf宠物怎么进化}
}
return utf;
}
4、utf82str:UTF-8转USC-2
function utf82str(utf)
{
var str ="";
var tmp;
for(var i =0; i < utf.length; i++)
{
// 英⽂字符集合
if(utf.charCodeAt(i)>>7==0x00)
{
进口中老年奶粉str += utf.charAt(i);
牡丹的诗词continue;
}
// 其他字符集
else if(utf.charCodeAt(i)>>5==0x06)
{
tmp =((utf.charCodeAt(i +0)&0x1f)<<6)|
((utf.charCodeAt(i +1)&0x3f)<<0);
str += String.fromCharCode(tmp);
i++;
continue;
}
// 中⽂字符集
else if(utf.charCodeAt(i)>>4==0x0e)办公室个人总结
{
tmp =((utf.charCodeAt(i +0)&0x0f)<<12)|
((utf.charCodeAt(i +1)&0x3f)<<6)|
((utf.charCodeAt(i +2)&0x3f)<<0);
str += String.fromCharCode(tmp);
i +=2;
continue;
}
// 其他字符集
else if(utf.charCodeAt(i)>>3==0x1f)
{
tmp =((utf.charCodeAt(i +0)&0x07)<<18)|
((utf.charCodeAt(i +1)&0x3f)<<12)|
((utf.charCodeAt(i +2)&0x3f)<<6);
((utf.charCodeAt(i +3)&0x3f)<<0);
str += String.fromCharCode(tmp);
i +=3;
continue;
}
// ⾮法字符集
else
{
throw"不是UTF-8字符集"
}
}
return str;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论