eg:
(案例1)解決中文亂麻問題,頁面端發出的數據作兩次encodeURI
var name="張三";
encodeURI(encodeURI(name));
後臺解碼:
URLDecoder.decode(name,"UTF-8");
(案例2)
前臺js:var sys_name = encodeURI($("#user_sys_id").find("option:selected").text());
後臺java:sys_name = URLDecoder.decode(request.getParameter("sys_name"), "UTF-8");
詳細介紹如下:
url後參數的轉碼與解碼
import Java.NET.URLDecoder;
import java.Net.URLEncoder;
String strTest = "?=abc?中%1&2<3,4>";
strTest = URLEncoder.encode(strTest, "UTF-8");
System.out.println(strTest);
strTest = URLDecoder.decode(strTest,"UTF-8");
System.out.println(strTest);
執行結果:
%3F%3Dabc%3F%E4%B8%AD%251%262%3C3%2C4%3E
?=abc?中%1&2<3,4>
需要注意:
js 中編碼(encode)和解碼(decode)方法
將文本字符串編碼爲一個統一資源標識符 (URI) 的一個有效組件。
encodeURIComponent(encodedURIString)
必選的encodedURIString參數代表一個已編碼的 URI 組件。
說明
encodeURIComponent方法返回一個已編碼的 URI。如果您將編碼結果傳遞給,那麼將返回初始的字符串。因爲encodeURIComponent方法對所有的字符編碼,請注意,如果該字符串代表一個路徑,例如/folder1/folder2/default.html,其中的斜槓也將被編碼。這樣一來,當該編碼結果被作爲請求發送到 web 服務器時將是無效的。如果字符串中包含不止一個 URI 組件,請使用encodeURI方法進行編碼。
encodeURI 方法
返回編碼爲有效的統一資源標識符 (URI) 的字符串。
function encodeURI(URIString : String) : String
參數
URIString
必選。表示編碼 URI 的字符串。
備註
encodeURI 方法返回一個已編碼的 URI。如果將編碼結果傳遞給 decodeURI,則將返回初始的字符串。encodeURI 不對下列字符進行編碼:“:”、“/”、“;”和“?”。請使用 encodeURIComponent 對這些字符進行編碼。