js中有三個(gè)函數(shù)是用于編碼的,他們是 escape(),encodeURI(),encodeURIComponent()函數(shù)。
在營(yíng)口等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營(yíng)銷型網(wǎng)站建設(shè),外貿(mào)營(yíng)銷網(wǎng)站建設(shè),營(yíng)口網(wǎng)站建設(shè)費(fèi)用合理。
而相對(duì)應(yīng)的解碼函數(shù)式:unescape,decodeURI,decodeURIComponent 。
對(duì) String 對(duì)象編碼以便它們能在所有計(jì)算機(jī)上可讀。
escape 方法返回一個(gè)包含了 charstring 內(nèi)容的字符串值( Unicode 格式)。所有空格、標(biāo)點(diǎn)、重音符號(hào)以及其他非 ASCII 字符都用 %xx 編碼代替,其中 xx 等于表示該字符的十六進(jìn)制數(shù)。例如,空格返回的是 "%20" 。
字符值大于 255 的以 %uxxxx 格式存儲(chǔ)。
**注意 escape 方法不能夠用來(lái)對(duì)統(tǒng)一資源標(biāo)示碼 (URI) 進(jìn)行編碼。對(duì)其編碼應(yīng)使用 encodeURI 和encodeURIComponent 方法。
(轉(zhuǎn))該方法不會(huì)對(duì) ASCII 字母和數(shù)字進(jìn)行編碼,也不會(huì)對(duì)下面這些 ASCII 標(biāo)點(diǎn)符號(hào)進(jìn)行編碼: - _ . ! ~ * ' ( ) 。其他所有的字符都會(huì)被轉(zhuǎn)義序列替換。
但是會(huì)編碼(;/?:@=+$,#)這些在地址欄中經(jīng)常用到的特殊字符
**
將文本字符串編碼為一個(gè)有效的統(tǒng)一資源標(biāo)識(shí)符 (URI)。
說(shuō)明:
encodeURI 方法返回一個(gè)編碼的 URI。如果您將編碼結(jié)果傳遞給 decodeURI,那么將返回初始的字符串。encodeURI 方法不會(huì)對(duì)下列字符進(jìn)行編碼:":"、"/"、";" 和 "?"。請(qǐng)使用 encodeURIComponent 方法對(duì)這些字符進(jìn)行編碼。
此方法是不會(huì)將(;/?:@=+$,#)這些字符編碼的
說(shuō)明:URIComponent 是一個(gè)完整的 URI 的一部分。
如果 encodedURIString 無(wú)效,將產(chǎn)生一個(gè) URIError。
該方法不會(huì)對(duì) ASCII 字母和數(shù)字進(jìn)行編碼,也不會(huì)對(duì)這些 ASCII 標(biāo)點(diǎn)符號(hào)進(jìn)行編碼: - _ . ! ~ * ' ( ) 。
但是會(huì)編碼(;/?:@=+$,#)這些在地址欄中經(jīng)常用到的特殊字符
大家在使用JS提交數(shù)據(jù)時(shí),尤其是中文的時(shí)候,經(jīng)常會(huì)需要將要提交的字符串進(jìn)行URL編碼。在JS中對(duì)字符串進(jìn)行URL編碼有好幾種方
法,encodeURI,encodeURIComponent,還有escape。在我看到的很多代碼中escape這個(gè)函數(shù)用的最多,不過這個(gè)函數(shù)卻
是不推薦使用的。下面我們來(lái)分別看看這幾個(gè)函數(shù):
encodeURI:對(duì)指定的字符串進(jìn)行URL編碼,不包括 : # / \ = 這些URL中的關(guān)鍵字符。
encodeURIComponent:對(duì)字符串中的字符進(jìn)行編碼,包括URL中的特殊字符。
escape:這個(gè)是JS比較早期版本的函數(shù),這個(gè)函數(shù)中處理unicode字符的時(shí)候會(huì)有些問題。
代碼如下:
復(fù)制代碼 代碼如下:
var url = "; amp;b=呵呵";
var encodedUrl = encodeURI(url);
alert(encodedUrl); //輸出:;b=%E5%91%B5%E5%91%B5
encodedUrl = encodeURIComponent(url);
alert(encodedUrl); //輸出:http%3A%2F %2F
alert(escape(url)); //輸出:http%3A//
如上所示,escape函數(shù)中處理中文字符的時(shí)候,都會(huì)轉(zhuǎn)換成%uxxxx這種形式,顯然這個(gè)和URL編碼的格式不一樣,而
encodeURIComponent函數(shù)編碼是最徹底的,如果沒有特殊需要的話,encodeURIComponent這個(gè)函數(shù)是比較常用的,當(dāng)然,也
許我們使用escape也不會(huì)有什么問題,也許你的服務(wù)端語(yǔ)言也能夠正常的解析出來(lái),不過這個(gè)函數(shù)在處理unicode字符的時(shí)候還不是很標(biāo)準(zhǔn),所以這里
建議大家使用encodeURIComponent和decodeURIComponent這對(duì)函數(shù)來(lái)對(duì)字符串進(jìn)行URL編碼和解碼。
可以在使用script標(biāo)簽時(shí)指定charset 屬性,規(guī)定在外部腳本文件中使用的字符編碼。
如果外部文件中的字符編碼與主文件中的編碼方式不同,就要用到 charset 屬性。
默認(rèn)的字符編碼是 ISO-8859-1。
如: script type="text/javascript" src="myscripts.js" charset="UTF-8"/script
注意:只有在使用引入外部js文件時(shí),可以聲明編碼格式,對(duì)行內(nèi)腳本無(wú)效;
現(xiàn)在編碼方式主要有兩種,一個(gè)是utf-8,一個(gè)GB2312,如果編碼方式不同,會(huì)導(dǎo)致頁(yè)面出現(xiàn)亂碼。想修改編碼方式一般可以用charset指定,也可以再工具中設(shè)置: 1.可以在使用script標(biāo)簽時(shí)指定。
網(wǎng)站欄目:編碼javascript,編碼鏈
當(dāng)前地址:http://jinyejixie.com/article2/dsdgeoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、企業(yè)網(wǎng)站制作、網(wǎng)站維護(hù)、域名注冊(cè)、網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)