JS实现unicode和UTF-8之间的互相转换互转
程序员文章站
2022-05-26 09:02:53
有一设备,为短信网关。需将pc送过来的utf-8转换成unicode才能将内容通过短信发送出去,同样,接收到的短信为unicode编码,也许转换成utf-8才能在pc端软件...
有一设备,为短信网关。需将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; }
以上所述是小编给大家介绍的js实现unicode和utf-8之间的互相转换互转,希望对大家有所帮助
推荐阅读