網(wǎng)上有很多文字作品寫涉及在JS中呈現(xiàn)類似UrlEncode功能時都是自定義參數(shù)來呈現(xiàn),其實JS中本身就有那樣的參數(shù)。
參數(shù)parameter由于用類似URL的形式傳過去 , 所以別直接就那樣賦值
以下是對變量值的URL編碼總結(jié) : 意見用encodeURIComponent() , GET 和POST方法都能夠發(fā)送過去
Java編程script中存在幾種對URL字符串停止編碼的竅門:escape(),encodeURI(),以及encodeURIComponent()。這幾種編碼所起的功能各不相同。
escape() 竅門:
采用ISO Latin字符集對指定的字符串停止編碼。所有的空格符、標點符號、特殊字符以及更多有聯(lián)系非ASCII字符都將被轉(zhuǎn)化成%xx各式的字符編碼(xx等于該字符在字符集表里面的編碼的16進制數(shù)字)。比如,空格符對應的編碼是%20。
不會被此竅門編碼的字符: @ * / +
encodeURI() 竅門:
把URI字符串采用UTF-8編碼各式轉(zhuǎn)化成escape各式的字符串。
不會被此竅門編碼的字符:! @ # $& * ( ) = : / ; ? + '
encodeURIComponent() 竅門:
把URI字符串采用UTF-8編碼各式轉(zhuǎn)化成escape各式的字符串。與encodeURI()相比,那個竅門將對更多的字符停止編碼,比如 / 等字符。所以假如字符串里面包含了URI的幾個部份的話,別用那個竅門來停止編碼,否則 / 字符被編碼之后URL將呈現(xiàn)錯誤。
不會被此竅門編碼的字符:! * ( ) '
因此,對于漢文字符串來說,假如不期望把字符串編碼各式轉(zhuǎn)化成UTF-8各式的(比如原頁面和目的頁面的charset是一致的時候),只需求應用 escape。假如你的頁面是GB2312或者更多有聯(lián)系的編碼,而接受參數(shù)parameter的頁面是UTF-8編碼的,就要采用encodeURI或者encodeURIComponent。
文章詳細參考:http://www.cnblogs.com/neru/archive/2010/07/10/1774718.html