亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

關(guān)于JAVASCRIPT urldecode URL解碼的問題

 更新時(shí)間:2012年01月08日 22:40:46   作者:  
JS要實(shí)現(xiàn)單純的編碼解碼輕而易舉,escape、unescape就搞定,但是遇到不是完整的URL轉(zhuǎn)碼,就沒辦法了
這個(gè)時(shí)候,出現(xiàn)了encodeURIComponent、decodeURIComponent,它可以完全的對(duì)URL進(jìn)行編碼解碼,但是遇到例如搜索引擎用到的部分轉(zhuǎn)碼,又摸不到門了,沒問題,PHP官方出了一個(gè)解決方案:
復(fù)制代碼 代碼如下:

decodeURIComponent((str + '').replace(/\+/g, '%20'));

他可以完美的對(duì)搜索引擎的地址進(jìn)行解碼,因?yàn)樗阉饕嬷涣?xí)慣對(duì)”空格“進(jìn)行轉(zhuǎn)碼。忘了說還習(xí)慣對(duì)中文進(jìn)行轉(zhuǎn)碼。。。
那以上所有的方案遇到中文就崩潰了,是的,我也崩潰了,即是部分編碼,又是中文。。這讓我情何以堪。。。
查了很久可以,不多說你懂的。。。
復(fù)制代碼 代碼如下:

<script type="text/vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
<script type="text/javascript">
/*這里開始時(shí)UrlEncode和UrlDecode<a href="/?tag=%E5%87%BD%E6%95%B0" target="_blank">函數(shù)</a>*/
function UrlEncode(str){
var ret="";
var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
var tt= "";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
var c=str2asc(chr);
tt += chr+":"+c+"n";
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}
function UrlDecode(str){
var ret="";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
if(chr == "+"){
ret+=" ";
}else if(chr=="%"){
var asc = str.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f){
ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));
i+=5;
}else{
ret+=asc2str(parseInt("0x"+asc));
i+=2;
}
}else{
ret+= chr;
}
}
return ret;
}
</script>

這個(gè)呢對(duì)僅對(duì)支持VB的瀏覽器支持。。。例如FF就不支持了。。。
為什么要用到VB呢?因?yàn)閟tr2asc、asc2str這種方法是JS不能滿足的。。。下面我模擬了兩個(gè)JS方法,貌似不是對(duì)所有中文有效。。
復(fù)制代碼 代碼如下:

function str2asc(str){
return str.charCodeAt(0).toString(16);
}
function asc2str(str){
return String.fromCharCode(str);
}

相關(guān)文章

  • 原生JS實(shí)現(xiàn)瀑布流插件

    原生JS實(shí)現(xiàn)瀑布流插件

    本篇文章給大家詳細(xì)分析了一個(gè)原生JS實(shí)現(xiàn)瀑布流插件以及代碼相關(guān)講解,對(duì)此有興趣的讀者們參考學(xué)習(xí)下吧。
    2018-02-02
  • js圖片延遲技術(shù)一般的思路與示例

    js圖片延遲技術(shù)一般的思路與示例

    現(xiàn)將img元素對(duì)應(yīng)的src路徑設(shè)置為背景圖片,而該img所對(duì)應(yīng)的url路徑存放在一個(gè)自設(shè)的屬性中
    2014-03-03
  • Webpack4+Babel7+ES6兼容IE8的實(shí)現(xiàn)

    Webpack4+Babel7+ES6兼容IE8的實(shí)現(xiàn)

    這篇文章主要介紹了Webpack4+Babel7+ES6兼容IE8的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 利用hasOwnProperty給數(shù)組去重的面試題分享

    利用hasOwnProperty給數(shù)組去重的面試題分享

    obj.hasOwnProperty(attr) 判斷是否是原型中的屬性,false就是原型中的屬性,下面這篇文章主要給大家介紹了一道利用hasOwnProperty給數(shù)組去重的面試題,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-11-11
  • JavaScript中解決多瀏覽器兼容性23個(gè)問題的快速解決方法

    JavaScript中解決多瀏覽器兼容性23個(gè)問題的快速解決方法

    下面小編就為大家?guī)硪黄狫avaScript中解決多瀏覽器兼容性23個(gè)問題的快速解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-05-05
  • 從axios源碼角度解決bug的過程記錄

    從axios源碼角度解決bug的過程記錄

    這篇文章主要為大家介紹了從axios源碼角度解決bug的過程記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • JS按位非(~)運(yùn)算符與~~運(yùn)算符的理解分析

    JS按位非(~)運(yùn)算符與~~運(yùn)算符的理解分析

    按位非運(yùn)算符,簡(jiǎn)單的理解就是改變運(yùn)算數(shù)的符號(hào)并減去1,當(dāng)然,這是只是簡(jiǎn)單的理解能轉(zhuǎn)換成number類型的數(shù)據(jù)
    2011-07-07
  • TBCompressor js代碼壓縮

    TBCompressor js代碼壓縮

    公司原先的JS和CSS文件都是用在線壓縮程序壓縮的,看似方便,但很容易出錯(cuò),可能是壓縮程序把CSS里面的一些Hack語(yǔ)句給混淆了,于是我決定用大名鼎鼎的YUI compressor。
    2011-01-01
  • 簡(jiǎn)單介紹JavaScript數(shù)據(jù)類型之隱式類型轉(zhuǎn)換

    簡(jiǎn)單介紹JavaScript數(shù)據(jù)類型之隱式類型轉(zhuǎn)換

    這篇文章主要介紹了簡(jiǎn)單介紹JavaScript數(shù)據(jù)類型之隱式類型轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • Three.js中實(shí)現(xiàn)Bloom效果及完整示例

    Three.js中實(shí)現(xiàn)Bloom效果及完整示例

    這篇文章主要為大家介紹了Three.js中實(shí)現(xiàn)Bloom效果及完整示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評(píng)論