jscript對URL引數進行編碼與解碼

2021-09-05 21:32:34 字數 2093 閱讀 6793

雖然escape()、encodeuri()、encodeuricomponent()三種方法都能對一些影響url完整性的特殊

字元進行過濾。但後兩者是將字串轉換為utf-8的方式來傳輸,解決了頁面編碼不一至導致的亂碼問

題。例如:傳送頁與接受頁的編碼格式(charset)不一致(假設傳送頁面是gb2312而接收頁面編碼是

utf-8),使用escape()轉換傳輸中文字串就會出現亂碼問題。

以下是js下對url進行編/解碼的各種方法:

escape 方法:返回乙個可在所有計算機上讀取的編碼 string 物件。

function escape(charstring : string) : string

不會被此方法編碼的字元: @ * / +

說明:escape 方法返回乙個包含 charstring 內容的字串值(unicode 格式)。所有空格、標點、

重音符號以及任何其他非 ascii 字元都用 %xx 編碼替換,其中 xx 等於表示該字元的十六進製制數。

例如,空格返回為「%20」。(字元值大於 255 的字元以 %u***x 格式儲存。)

注意:escape 方法不能用來對「統一資源識別符號」(uri) 進行編碼。對其編碼應使用 encodeuri 和

encodeuricomponent 方法。

encodeuri 方法:返回編碼為有效的統一資源識別符號 (uri) 的字串。

function encodeuri(uristring : string) : string

不會被此方法編碼的字元:! @ # $ &   * ( ) = : / ; ? + '

說明:encodeuri 方法返回乙個已編碼的 uri。如果將編碼結果傳遞給 decodeuri,則將返回初始的

字串。encodeuri 不對下列字元進行編碼:「:」、「/」、「;」和「?」。請使用

encodeuricomponent 對這些字元進行編碼。

encodeuricomponent 方法:返回編碼為統一資源識別符號 (uri) 的有效元件的字串。

function encodeuricomponent(encodeduristring : string) : string

不會被此方法編碼的字元:! * ( ) '

說明:encodeuricomponent 方法返回乙個已編碼的 uri。如果將編碼結果傳遞給

decodeuricomponent,則將返回初始的字串。因為 encodeuricomponent 方法將對所有字元編碼,

請注意,如果該字串代表乙個路徑,例如 /folder1/folder2/default.html,則其中的斜槓也將被

編碼,這樣,當該字串作為請求傳送到 web 伺服器時它將是無效的。如果字串中包含多個 uri

元件,請使用 encodeuri 方法進行編碼。

unescape 方法:從用 escape 方法編碼的 string 物件中返回已解碼的字串。

function unescape(charstring : string) : string

說明:unescape 方法返回乙個包含 charstring 內容的字串值。所有以 %xx 十六進製制形式編碼的

字元都用 ascii 字符集當中等效的字元代替。(以 %u***x 格式(unicode 字元)編碼的字元用十六

進製編碼 ***x 的 unicode 字元代替。)

注意:unescape 方法不應用於解碼「統一資源識別符號」(uri)。請改用 decodeuri 和

decodeuricomponent 方法。

decodeuri 方法:返回乙個已編碼的統一資源識別符號 (uri) 的非編碼形式。

function decodeuri(uristring : string) : string

decodeuricomponent 方法:返回統一資源識別符號 (uri) 的乙個已編碼元件的非編碼形式。

function decodeuricomponent(encodeduristring : string) : string

c#中對url編碼的方法。。。

編碼:server.urlencode(string)

解碼:server.urldecode(string)

html 對URL傳引數進行解析

跳轉頁面需要傳引數到另外乙個html頁面,跳轉鏈結可寫乙個js的function function doview articleid 然而url會被編碼 encodeurl collectionarticlecomment.jsp?articleid 20 202576 因此我們先將url解碼 de...

html 對URL傳引數進行解析

跳轉頁面需要傳引數到另外乙個html頁面,跳轉鏈結可寫乙個js的function function doview articleid 然而url會被編碼 encodeurl collectionarticlecomment.jsp?articleid 20 202576 因此我們先將url解碼 de...

對Url傳輸引數進行加密和解密

最近做乙個論壇入口時要實現帳號和密碼不在ie位址列出現而做的 index.aspx.cs 加密處理 byte iv64 byte bykey64 public string encrypt string strtext catch exception ex private void btnlogin...