JS 從unicode轉換到GB

來源:互聯網
上載者:User

網上有很多js代碼從GB轉換為unicode,但是js讀cookies時讀到的是unicode,現顯示中文只好用查表法實現

var str;
str="%D6%D0%B9%FA%B3%CC%D0%F2%D4%B1%B4%F3%B1%BE%D3%AA+%3c%3e%22%23%25%7b%7d%7c%5e%7e%5b%5d%60%26%3f%2bAbc";   
alert(URLDecode(str)); 

function URLDecode(enStr){ 
    var deStr,strSpecial   
    var c,i,v,q,p,t,s;
    deStr="";  
    strSpecial="!\"#$%&'()*+,.-_/:;<=>?@[\]^`{|}~%";  
    for(i=0;i<enStr.length;i++){  
        c=enStr.substr(i,1);    
        if (c=="%"){
            q=enStr.substr(i+1,2);
            v=eval("0x"+enStr.substr(i+1,2));
            p=String.fromCharCode(v);
            if(strSpecial.indexOf(p,0)!=-1){
                deStr=deStr+p;
                i=i+2;
            }
            else{
                q=enStr.substr(i+1,2);
                t=eval("0x"+q)-0xB0;
                q=enStr.substr(i+4,2);
                s=eval("0x"+q)-0xA1;
                if(t>=0 && s>=0){
                    v=t*94+s;
                    p=strGB.substr(v,1); 
                    //v=eval("0x"+enStr.substr(i+1,2)+enStr.substr(i+4,2));
                    //p=String.fromCharCode(v);
                    deStr=deStr+p;
                    i=i+5;
                }
                else{
                    v=eval("0x"+enStr.substr(i+1,2));
                    p=String.fromCharCode(v);
                    deStr=deStr+p;
                    i=i+2;
                }
            }
        }
        else{  
            if(c=="+"){  
                deStr=deStr+" ";
            }
            else{
                deStr=deStr+c;
            }   
        }   
    }  
    return deStr;   
}

使用前需要qswhGB2312.js這個檔案支援。 http://files.cnblogs.com/feishu/qswhGB2312.js

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.