當前開發中,遇到特殊情況: 使用url進行跨頁面(跨域)傳值的時候,會出現某些帶特殊字元的url,在瀏覽器上被處理了,例如:
後端傳給前端的跳轉路徑:
瀏覽器跳轉時瀏覽器位址列的url變成:
注意:末尾處的#不見了
還有其他情況,如url中的引數有 "/" "&" "@" "&" 特殊字元時,url都會出現錯誤...
解決方案: 使用url的編碼和解碼 對 特殊字元進行處理
方法解釋
urlencoder.encode(string s, string enc)
編碼s - 要轉換的 string。
enc - 所支援的字元編碼名稱。
urlencoder.decode(string s, string enc)
解碼s - 要轉換的 string。
enc - 所支援的字元編碼名稱。
對 string 編碼時,使用以下規則:
例如,使用 utf-8 編碼機制,字串 "the string ü@foo-bar" 將轉換為 "the+string+%c3%bc%40foo-bar",因為在 utf-8 中,字元 ü 編碼為兩個位元組,c3 (十六進製制)和 bc (十六進製制),字元 @ 編碼為乙個位元組 40 (十六進製制)。
//
string str = "1qaz2wsx#";
try catch (unsupportedencodingexception e)
//顯示:
1qaz2wsx%23
1qaz2wsx#
後端特殊處理後,傳給前端的url變為:
%23
方法
解釋encodeuricomponent(str);
編碼str- 要轉換的 string。
decodeuricomponent(str);
解碼str - 要轉換的 string。
例如:
var password = decodeuricomponent("1qazwsx%23");
console.log(password);
//顯示結果 1qazwsx#
其他的變法解碼方式:
示例(摘自w3school):
1 escape()
輸出結果:
visit%20w3school%21
%3f%21%3d%28%29%23%25%26
2 encodeuri()
輸出結果:
/my%20first/
,/?:@&=+$#
對整個url進行編碼,而url的特定識別符號不會被轉碼。
3 encodeuricomponent()
輸出結果:
對url中的引數進行編碼,因為引數也是乙個url,如果不編碼會影響整個url的跳轉。
python中關於url中特殊字元的編碼和解碼
編碼 from urllib.parse import quote text quote text,utf 8 解碼 from urllib.parse import unquote text unquote text,utf 8 假如url 乙個ajax請求,url的字元 等需要轉碼才能傳遞 那麼...
URL中特殊字元處理
如果你的表單使用get方法提交,並且提交的引數中有 等特殊符的話,如果不做處理,在service端就會將 後面的作為另外乙個引數來看待。例如 表單的action為list.jsf?act go state 5 則提交時通過request.getparameter可以分別取得act和state的值。如...
url中特殊字元轉義
在前端向後端傳一些特定字元的時候有幾個特殊字元需要進行轉義 如果不進行編碼手動進行轉義可以對照下面 url中 號表示空格 2b 空格 url中的空格可以用 號或者編碼 20 url中分隔目錄和子目錄 2f url中分隔實際的url和引數 3f url中指定特殊字元 25 url中表示書籤 23 ur...