JS实现unicode和UTF-8互转

来源:互联网 发布:linux编译安装mysql 编辑:程序博客网 时间:2024/05/17 03:12

有一设备,为短信网关。需将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;}


原创粉丝点击