為什么需要對URI進(jìn)行編碼?
對于Url來說,之所以要進(jìn)行編碼,是因為Url中有些字符會引起歧義。
一般來說,URL只能使用英文字母、阿拉伯?dāng)?shù)字和某些標(biāo)點符號,不能使用其他文字和符號。這是因為網(wǎng)絡(luò)標(biāo)準(zhǔn)RFC 1738做了硬性規(guī)定:
原文:"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL."
翻譯:“只有字母和數(shù)字[0-9a-zA-Z]、一些特殊符號“$-_.+!*'(),”[不包括雙引號]、以及某些保留字,才可以不經(jīng)過編碼直接用于URL?!?/pre>但是該網(wǎng)絡(luò)標(biāo)準(zhǔn)卻沒有規(guī)定說怎么進(jìn)行編碼,交給了瀏覽器來自己來控制,瀏覽器目前的一個通用做法是除了a-zA-Z0-9.-_以外,都進(jìn)行%替換。
三種編碼方式的介紹
Javascript中提供了3對函數(shù)用來對Url編碼以得到合法的Url,它們分別是
網(wǎng)友評論