欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS实现unicode和UTF-8之间的互相转换互转

程序员文章站 2023-02-25 13:55:29
有一设备,为短信网关。需将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之间的互相转换互转,希望对大家有所帮助