摘要:基本概念編碼不能直接使用需要編碼領(lǐng)杉果紅包,享更多優(yōu)惠點擊領(lǐng)取問題的由來就是網(wǎng)址只要上網(wǎng)就一定會用到只有字母和數(shù)字一些特殊符號以及某些保留字才可以不經(jīng)過編碼直接用于這意味著如果中有漢字就必須編碼后使用但是麻煩的是沒有規(guī)定具體的編碼方
基本概念
1.encodeComponent編碼url,url不能直接使用,需要編碼
var rlt = "http://service.weibo.com/share/share.php?"; var url = "http://www.baidu.com"; var params = { appkey: "379570494", title: "領(lǐng)杉果紅包,享更多優(yōu)惠!點擊領(lǐng)取:", url: url }; for (var i in params) { rlt += i + "=" + params[i] + "&"; } for (var i in params) { rlt += i + "=" + encodeURIComponent(params[i]) + "&"; } console.log(rlt);問題的由來
1.URL就是網(wǎng)址,只要上網(wǎng),就一定會用到.
只有字母和數(shù)字[0-9a-zA-Z],一些特殊符號$-_.+!*"(),以及某些保留字,才可以不經(jīng)過編碼直接用于URL.
2.這意味著,如果URL中有漢字,就必須編碼后使用,但是麻煩的是,RFC1738沒有規(guī)定具體的編碼方法,
而是交給應(yīng)用程序(瀏覽器)自己決定,這導(dǎo)致"URL編碼"成為了一個混亂的領(lǐng)域.
3.包括:ajax請求url地址,瀏覽器上直接用get或post發(fā)出http請求,網(wǎng)址路徑中包含漢字,查詢字符串包含漢字.
4.使用js先對URL編碼,然后再向服務(wù)器提交,不給瀏覽器插手的機會,
因為js的輸出總是一致的,所以就保證了服務(wù)器得到的數(shù)據(jù)是格式統(tǒng)一的.
escape()不能直接用于URL編碼,他的真正作用是返回一個字符串的Unicode編碼值.
encodeURI和decodeURI1.encodeURI()是js中真正用來對URL編碼的函數(shù)
2.它著眼于對整個URL進行編碼,因此除了常見的符號以外,對其他一些在網(wǎng)址中有特殊含義的符號;/?:@&=+$,#也不進行編碼,
編碼后,它輸出符號的utf-8形式,并且在每個字節(jié)前加上%
與encodeURI()的區(qū)別是,它用于對URL的組成部分進行個別編碼,而不用于對整個URL進行編碼.
因此,;/?:@&=+$,#這些在encodeURI()中不被編碼的符號,在encodeURIComponent中統(tǒng)統(tǒng)會被編碼.
var test = "http://www.baidu.com/my app?search=a&b=3#2哈哈"; var test1 = encodeURIComponent(test); var test2 = encodeURI(test); console.log(test); // http://www.baidu.com console.log(test1); // http%3A%2F%2Fwww.baidu.com%2Fmy%20app%3Fsearch%3Da%26b%3D3%232%E5%93%88%E5%93%88,瀏覽器無法解析這個地址 console.log(test2); // http://www.baidu.com/my%20app?search=a&b=3#2%E5%93%88%E5%93%88,瀏覽器無法解析這個地址 var test3 = decodeURIComponent(test1); var test4 = decodeURI(test2); console.log(test3); console.log(test4); var test5 = escape(test); var test6 = unescape(test5); console.log(test5); // http%3A//www.baidu.com/my%20app%3Fsearch%3Da%26b%3D3%232%u54C8%u54C8 console.log(test6); // http://www.baidu.com/my app?search=a&b=3#2哈哈
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84387.html
摘要:它的具體規(guī)則是,除了字母數(shù)字標(biāo)點符號以外,對其他所有字符進行編碼。對應(yīng)的解碼函數(shù)是。其次,不對編碼。與的區(qū)別是,它用于對的組成部分進行個別編碼,而不用于對整個進行編碼。因此,,這些在中不被編碼的符號,在中統(tǒng)統(tǒng)會被編碼。 Javascript語言用于編碼的函數(shù),一共有三個,最古老的一個就是escape()。雖然這個函數(shù)現(xiàn)在已經(jīng)不提倡使用了,但是由于歷史原因,很多地方還在使用它,所以有必要...
摘要:微信小程序開發(fā)官方文檔,正在開發(fā)的小程序的源碼,都給了我不少啟發(fā)到小程序上富文本的解析一個優(yōu)秀的開源項目微信小程序富文本解析組件作用在于解析你論壇上的帖子內(nèi)容,你論壇上加粗的文字,加了顏色的文字,圖片等等,都可以原原本本的展示在小程序中。 關(guān)于這個小程序 Github : https://github.com/DowneyL/di...‘ 這個小程序是公司針對一個自家產(chǎn)品的需求,而這個...
摘要:最近在看揭秘,于是寫了文章來作筆記,除此以外還會補充一些自己遇到的筆試題。舉例說明以上的代碼有什么問題呢如果需要改變字號,那么同時需要調(diào)整行高。那么經(jīng)過修改后的代碼如下關(guān)于使用還是還是百分比,需要根據(jù)具體情況來決定。 最近在看《css揭秘》,于是寫了文章來作筆記,除此以外還會補充一些自己遇到的筆試題。希望大家都有所收獲。 css編碼技巧 盡量減少代碼重復(fù) 在實踐中,代碼可維護性的最大要...
摘要:是中定義字體的規(guī)則。首先,在使用時,在下沒有問題,但是在下提示未能完成嵌入權(quán)限檢查。訪問,將編碼轉(zhuǎn)換為文件,這里命名為。保存并瀏覽器刷新后,中不再提示錯誤。@font-face是css3中定義字體的規(guī)則。 首先,在使用weui時,在Chrome、Firefox下沒有問題,但是在IE下提示“font-face 未能完成 OpenType 嵌入權(quán)限檢查。權(quán)限必須是可安裝的&rdquo...
摘要:在近幾年迅速咋程序界掀起了不小的波瀾,而關(guān)于的第三庫也使廣大程序員趨之若鶩,今天我們就由淺入深的探討一下如何使用做一個網(wǎng)絡(luò)爬蟲來抓取一些頁面信息。 Python在近幾年迅速咋程序界掀起了不小的波瀾,而關(guān)于python的第三庫也使廣大程序員趨之若鶩,今天我們就由淺入深的探討一下如何使用python做一個網(wǎng)絡(luò)爬蟲來抓取一些頁面信息。今天我們使用的庫(包含python自身攜帶的庫和第三庫) ...
閱讀 1080·2021-11-23 09:51
閱讀 2420·2021-09-29 09:34
閱讀 3161·2019-08-30 14:20
閱讀 1070·2019-08-29 14:14
閱讀 3191·2019-08-29 13:46
閱讀 1087·2019-08-26 13:54
閱讀 1643·2019-08-26 13:32
閱讀 1435·2019-08-26 12:23