中文亂碼 encodeURI來解決URL傳遞時的中文問題

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 對這些字符進行編碼。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章