JS實現(xiàn)unicode和UTF-8之間的互相轉(zhuǎn)換互轉(zhuǎn)
有一設(shè)備,為短信網(wǎng)關(guān)。需將PC送過來的UTF-8轉(zhuǎn)換成UNICODE才能將內(nèi)容通過短信發(fā)送出去,同樣,接收到的短信為unicode編碼,也許轉(zhuǎn)換成UTF-8才能在PC端軟件顯示出來。程序很簡單,只是走了不少彎路:
//unicode為1個接收數(shù)據(jù),串口收到的字符編碼放在該數(shù)組中
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字節(jié)編碼,一次讀入2個字節(jié)
utf8str = utf8str + String.fromCharCode(uchar); //使用String.fromCharCode強(qiáng)制轉(zhuǎn)換
}
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實現(xiàn)unicode和UTF-8之間的互相轉(zhuǎn)換互轉(zhuǎn),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
js控制元素顯示在屏幕固定位置及監(jiān)聽屏幕高度變化的方法
這篇文章主要介紹了js控制元素顯示在屏幕固定位置及監(jiān)聽屏幕高度變化的方法,涉及javascript針對頁面元素及樣式屬性的相關(guān)操作技巧,需要的朋友可以參考下2015-08-08
js獲取時間函數(shù)及擴(kuò)展函數(shù)的方法
下面小編就為大家?guī)硪黄猨s獲取時間函數(shù)及擴(kuò)展函數(shù)的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10
javascript實現(xiàn)前端成語點(diǎn)擊驗證優(yōu)化
這篇文章主要介紹了javascript實現(xiàn)前端成語點(diǎn)擊驗證優(yōu)化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06
js獲取html的span標(biāo)簽的值方法(超簡單)
下面小編就為大家?guī)硪黄猨s獲取html的span標(biāo)簽的值方法(超簡單)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07
JavaScript中for..in循環(huán)陷阱介紹
for...in循環(huán)中的循環(huán)計數(shù)器是字符串,而不是數(shù)字它包含當(dāng)前屬性的名稱或當(dāng)前數(shù)組元素的索引,下面有個不錯的示例大家可以參考下2013-11-11

