ios如何獲取數據之encodeURI和decodeURI-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關ios如何獲取數據之encodeURI和decodeURI,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供千陽網站建設、千陽做網站、千陽網站設計、千陽網站制作等企業(yè)網站建設、網頁設計與制作、千陽企業(yè)網站模板建站服務,10余年千陽做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。

在APP開發(fā)過程中,免不了要進行ios的數據處理,在ios傳遞數據的過程中,會出現JSON數據獲取不到的情況,這時候就輪到encodeURI 和 decodeURI出馬了。

1、encodeURI,decodeURI

encodeURI:將字符串作為 URI 進行編碼

?不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼( 即:- _ . ! ~ * ' ( ) )。

?目的是對 URI 全部的編碼,因此對在 URI 中具有特殊含義的 ASCII 標點符號(即:;/?:@&=+$,#)是不會進行編碼的。所以,此函數別名為 encodeURL 不為過,相當于 PHP 的 url_encode 。

例子:

encodeURI("http://ydr.me?user=hello 云淡然");
// "http://ydr.me?user=hello%20%E4%BA%91%E6%B7%A1%E7%84%B6" 
 
decodeURI("http://ydr.me?user=hello%20%E4%BA%91%E6%B7%A1%E7%84%B6");
// http://ydr.me?user=hello 云淡然

由于 encodeURI 是對 URL 的完整編碼,所以常用于URL的跳轉之處:

location.href=encodeURI('http://baidu.com/s?word=hello 云淡然');
// "http://baidu.com/s?word=hello%20%E4%BA%91%E6%B7%A1%E7%84%B6"

在各個瀏覽器打開該地址,表現均不相同:

?ie的url表現的最規(guī)范(完全按照encodeURI編碼)

?chrome的url表現比較規(guī)范(部分按照encodeURI編碼)

?firefox的url表現最不規(guī)范(完全沒有安裝encodeURI編碼)

雖然各個瀏覽器的URL表現均不相同,但在 firefox 和 chrome 中url的可讀性最高,ie最低。

2、encodeURIComponent 和 decodeURIComponent

encodeURI 是對完整的URL進行編碼,而 encodeURIComponent 是對URL的參數進行編碼的,并且其編碼特點如下:

?不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號進行編碼(即: - _ . ! ~ * ' ( ) )。

?目的是對 URI 部分的編碼,因此對在 URI 中具有特殊含義的 ASCII 標點符號(即:;/?:@&=+$,#)是會進行編碼的。

encodeURIComponent("http://ydr.me?user=hello world");
// "http%3A%2F%2Fydr.me%3Fuser%3Dhello%20world"
 
decodeURIComponent("http%3A%2F%2Fydr.me%3Fuser%3Dhello%20world");
// http://ydr.me?user=hello world

由于 encodeURIComponent 是對URL部分編碼,因此常用于queryString、hashSearch、hashPath以及Cookie中,如:

// queryString 編碼
"http://ydr.me?from=" + encodeURIComponent("http://baidu.com");
// "http://ydr.me?from=http%3A%2F%2Fbaidu.com"
 
// hashSearch、hashPath 編碼
"http://ydr.me#?from=" + encodeURIComponent("http://baidu.com");
// "http://ydr.me#?from=http%3A%2F%2Fbaidu.com"
"http://ydr.me#!from/" + encodeURIComponent("http://baidu.com");
// "http://ydr.me#!from/http%3A%2F%2Fbaidu.com"
 
// cookie 編碼
document.cookie = "from=" + encodeURIComponent("http://baidu.com");
// "from=http%3A%2F%2Fbaidu.com"

3、escape 和 unescape

escape 與 encodeURI 和 encodeURIComponent 類似,都是對字符串進行編碼。不同點在于該方法不會對 ASCII 字母和數字進行編碼,也不會對這些 ASCII 標點符號(即: * @ - _ + . / )進行編碼,其他所有的字符都會被轉義序列替換。

注意:ECMAScript v3 反對使用該方法,應用使用 decodeURI() 和 decodeURIComponent() 替代它。

關于“ios如何獲取數據之encodeURI和decodeURI”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站muchs.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網站欄目:ios如何獲取數據之encodeURI和decodeURI-創(chuàng)新互聯(lián)
網頁URL:http://muchs.cn/article16/dshddg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站維護、搜索引擎優(yōu)化移動網站建設、微信小程序、網站內鏈、面包屑導航

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設