欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

他可以完美的對搜索引擎的地址進(jìn)行解碼,因?yàn)樗阉饕嬷涣?xí)慣對”空格“進(jìn)行轉(zhuǎn)碼。忘了說還習(xí)慣對中文進(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">
/*這里開始時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>

這個呢對僅對支持VB的瀏覽器支持。。。例如FF就不支持了。。。
為什么要用到VB呢?因?yàn)閟tr2asc、asc2str這種方法是JS不能滿足的。。。下面我模擬了兩個JS方法,貌似不是對所有中文有效。。
復(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ì)分析了一個原生JS實(shí)現(xiàn)瀑布流插件以及代碼相關(guān)講解,對此有興趣的讀者們參考學(xué)習(xí)下吧。
    2018-02-02
  • js圖片延遲技術(shù)一般的思路與示例

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

    現(xiàn)將img元素對應(yīng)的src路徑設(shè)置為背景圖片,而該img所對應(yīng)的url路徑存放在一個自設(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ì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 利用hasOwnProperty給數(shù)組去重的面試題分享

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

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

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

    下面小編就為大家?guī)硪黄狫avaScript中解決多瀏覽器兼容性23個問題的快速解決方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    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)算符,簡單的理解就是改變運(yùn)算數(shù)的符號并減去1,當(dāng)然,這是只是簡單的理解能轉(zhuǎn)換成number類型的數(shù)據(jù)
    2011-07-07
  • TBCompressor js代碼壓縮

    TBCompressor js代碼壓縮

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

    簡單介紹JavaScript數(shù)據(jù)類型之隱式類型轉(zhuǎ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

最新評論