主頁 > 知識庫 > utf-8編碼轉(zhuǎn)換成gb2312

utf-8編碼轉(zhuǎn)換成gb2312

熱門標(biāo)簽:修改地圖標(biāo)注 鳳臺百度地圖標(biāo)注店 個人可以辦理400電話么 怎么在地圖標(biāo)注自己 金昌電話機器人價格 縣域地圖標(biāo)注打印店 萊西電子地圖標(biāo)注 武夷山旅游地圖標(biāo)注 外呼系統(tǒng)API接口
[code]script>  
function  chinesefromutf8url(strutf8)    
{  
           var  bstr  =  "";  
           var  noffset  =  0; 
 //  processing  point  on  strutf8               
           if(  strutf8  ==  ""  )  
               return  "";                 
           strutf8  =  strutf8.tolowercase();  
           noffset  =  strutf8.indexof("%e");  
           if(  noffset  ==  -1  )  
               return  strutf8;  

           while(  noffset  !=  -1  )  
           {  
               bstr  +=  strutf8.substr(0,  noffset);  
               strutf8  =  strutf8.substr(noffset,  strutf8.length  -  noffset);  
               if(  strutf8  ==  ""    ¦  ¦  strutf8.length    9  )      //  bad  string  
                   return  bstr;  

               bstr  +=  utf8codetochinesechar(strutf8.substr(0,  9));  
               strutf8  =  strutf8.substr(9,  strutf8.length  -  9);  
               noffset  =  strutf8.indexof("%e");  
           }  

           return  bstr  +  strutf8;  
}  

function  unicodefromutf8(strutf8)    
{  
           var  bstr  =  "";  
           var  ntotalchars  =  strutf8.length;            //  total  chars  to  be  processed.  
           var  noffset  =  0;                                                            //  processing  point  on  strutf8  
           var  nremainingbytes  =  ntotalchars;            //  how  many  bytes  left  to  be  converted  
           var  noutputposition  =  0;  
           var  icode,  icode1,  icode2;                                    //  the  value  of  the  unicode.  

           while  (noffset    ntotalchars)  
           {  
                       icode  =  strutf8.charcodeat(noffset);  
                       if  ((icode    0x80)  ==  0)                                    //  1  byte.  
                       {  
                                   if  (  nremainingbytes    1  )                        //  not  enough  data  
                                               break;  

                                   bstr  +=  string.fromcharcode(icode    0x7f);  
                                   noffset  ++;  
                                   nremainingbytes  -=  1;  
                       }  
                       else  if  ((icode    0xe0)  ==  0xc0)            //  2  bytes  
                       {  
                                   icode1  =    strutf8.charcodeat(noffset  +  1);  
                                   if  (  nremainingbytes    2    ¦  ¦                                    //  not  enough  data  
                                                 (icode1    0xc0)  !=  0x80  )                        //  invalid  pattern  
                                   {  
                                               break;  
                                   }  

                                   bstr  +=  string.fromcharcode(((icode    0x3f)    6)    ¦  (              icode1    0x3f));  
                                   noffset  +=  2;  
                                   nremainingbytes  -=  2;  
                       }  
                       else  if  ((icode    0xf0)  ==  0xe0)            //  3  bytes  
                       {  
                                   icode1  =    strutf8.charcodeat(noffset  +  1);  
                                   icode2  =    strutf8.charcodeat(noffset  +  2);  
                                   if  (  nremainingbytes    3    ¦  ¦                                    //  not  enough  data  
                                                 (icode1    0xc0)  !=  0x80    ¦  ¦                        //  invalid  pattern  
                                                 (icode2    0xc0)  !=  0x80  )  
                                   {  
                                               break;  
                                   }  

                                   bstr  +=  string.fromcharcode(((icode    0x0f)    12)    ¦    
                                                           ((icode1    0x3f)      6)    ¦  
                                                           (icode2    0x3f));  
                                   noffset  +=  3;  
                                   nremainingbytes  -=  3;  
                       }  
                       else                                                                                                //  4  or  more  bytes  --  unsupported  
                                   break;  
           }  

           if  (nremainingbytes  !=  0)  
           {  
                       //  bad  utf8  string.  
                       return  "";  
           }  

           return  bstr;  
}  

function  utf8codetochinesechar(strutf8)  
{  
   var  icode,  icode1,  icode2;  
   icode  =  parseint("0x"  +  strutf8.substr(1,  2));  
   icode1  =  parseint("0x"  +  strutf8.substr(4,  2));  
   icode2  =  parseint("0x"  +  strutf8.substr(7,  2));  

   return  string.fromcharcode(((icode    0x0f)    12)    ¦    
                                                           ((icode1    0x3f)      6)    ¦  
                                                           (icode2    0x3f));  
}  
alert(chinesefromutf8url("%e6%b5%8b%e8%af%95"))  
/script>[code]
您可能感興趣的文章:
  • 將字符串轉(zhuǎn)換成gb2312或者utf-8編碼的參數(shù)(js版)
  • php實現(xiàn)utf-8和GB2312編碼相互轉(zhuǎn)換函數(shù)代碼
  • UTF-8 GBK UTF8 GB2312 之間的區(qū)別和關(guān)系介紹
  • PHP字符編碼問題之GB2312 VS UTF-8解決方法
  • VBS實現(xiàn)GB2312,UTF-8,Unicode,BIG5編碼轉(zhuǎn)換工具
  • PHP 解決utf-8和gb2312編碼轉(zhuǎn)換問題
  • unicode utf-8 gb18030 gb2312 gbk各種編碼對比
  • ASP中Utf-8與Gb2312編碼轉(zhuǎn)換亂碼問題的解決方法 頁面編碼聲明
  • MSSQL轉(zhuǎn)MYSQL,gb2312轉(zhuǎn)utf-8無亂碼解決方法
  • PHP iconv 解決utf-8和gb2312編碼轉(zhuǎn)換問題
  • ASP UTF-8頁面亂碼+GB2312轉(zhuǎn)UTF-8 +生成UTF-8格式的文件(編碼)
  • 用VBS實現(xiàn)的批量gb2312轉(zhuǎn)utf-8,支持拖動
  • 用javascript實現(xiàn)gb2312轉(zhuǎn)utf-8的腳本
  • [轉(zhuǎn)]ASP實現(xiàn)關(guān)鍵詞獲取(各搜索引擎,GB2312及UTF-8)
  • UTF-8轉(zhuǎn)GB2312函數(shù)
  • 將編碼從GB2312轉(zhuǎn)成UTF-8的方法匯總(從前臺、程序、數(shù)據(jù)庫)

標(biāo)簽:清遠(yuǎn) 邢臺 通遼 涼山 赤峰 南京 楚雄 上海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《utf-8編碼轉(zhuǎn)換成gb2312》,本文關(guān)鍵詞  utf-8,編碼,轉(zhuǎn),換成,gb2312,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《utf-8編碼轉(zhuǎn)換成gb2312》相關(guān)的同類信息!
  • 本頁收集關(guān)于utf-8編碼轉(zhuǎn)換成gb2312的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章