JS实现unicode和UTF-8之间的互相转换互转
有一设备,为短信网关。需将PC送过来的UTF-8转换成UNICODE才能将内容通过短信发送出去,同样,接收到的短信为unicode编码,也许转换成UTF-8才能在PC端软件显示出来。程序很简单,只是走了不少弯路:
//unicode为1个接收数据,串口收到的字符编码放在该数组中 function UnicodeToUtf8(unicode) { var uchar; var utf8str = ""; var i; for(i=0; i<unicode.length;i+=2){ uchar = (unicode[i]<<8) | unicode[i+1]; //UNICODE为2字节编码,一次读入2个字节 utf8str = utf8str + String.fromCharCode(uchar); //使用String.fromCharCode强制转换 } return utf8str; } function Utf8ToUnicode(strUtf8) { var i,j; var uCode; var temp = new Array(); for(i=0,j=0; i<strUtf8.length; i++){ uCode = strUtf8.charCodeAt(i); if(uCode<0x100){ //ASCII字符 temp[j++] = 0x00; temp[j++] = uCode; }else if(uCode<0x10000){ temp[j++] = (uCode>>8)&0xff; temp[j++] = uCode&0xff; }else if(uCode<0x1000000){ temp[j++] = (uCode>>16)&0xff; temp[j++] = (uCode>>8)&0xff; temp[j++] = uCode&0xff; }else if(uCode<0x100000000){ temp[j++] = (uCode>>24)&0xff; temp[j++] = (uCode>>16)&0xff; temp[j++] = (uCode>>8)&0xff; temp[j++] = uCode&0xff; }else{ break; } } temp.length = j; return temp; }
相关推荐
周游列国之仕子 2020-09-21
mjshldcsd 2020-06-14
81214051 2020-06-01
88384957 2020-03-27
81214051 2020-01-28
xiaobaif 2020-01-09
88540591 2019-12-26
xiaobaif 2019-12-20
88384957 2019-11-09
lpfvip00 2019-11-09
JakobHu 2019-11-09
86530296 2020-11-10
88540591 2020-06-16
89411051 2020-06-14
88384957 2020-06-12
84590091 2020-06-08
88540591 2020-06-04
88540591 2020-06-01