天天看點

URL傳值有中文字元怎麼處理?

encodeURIComponent(url) 函數

定義和用法 :      encodeURIComponent() 函數可把字元串作為 URI 元件進行編碼。

文法 :      encodeURIComponent(URIstring)

參數 描述 :      URIstring 必需。一個字元串,含有 URI 元件或其他要編碼的文本。

傳回值 :      URIstring 的副本,其中的某些字元将被十六進制的轉義序列進行替換。

decodeURIComponent(url) 函數

定義和用法 :      decodeURIComponent() 函數可把字元串作為 URI 元件進行解碼。

文法 :    decodeURIComponent(URIstring)

參數 描述 :     URIstring 必需。一個字元串,含有 URI 元件或其他要解碼的文本。

傳回值 :      URIstring 的副本,其中的某些字元被十六進制的轉義序列轉換成對應的ACSII字元。

例如:

HTML:

<a id="testunicode">編碼格式</a>
      

JS:

$("#testunicode").on("click",function () {
    var hanzi = "好好學習";
    var hanzi1 = tounicode(hanzi);
    location.href="${path}/kpijgcx/findKPIList?username=" target="_blank" rel="external nofollow" +hanzi1;
});      
function tounicode(data)
{
    //return encodeURIComponent(data);                    // 編譯一次,背景不需要做任何處理
    return encodeURIComponent(encodeURIComponent(data)); //編譯了兩次,背景需轉碼
}
      

JAVA:

//username從前台傳值過來
System.out.println(username);
String un = java.net.URLDecoder.decode(username,"UTF-8");    //js:encodeURIComponent(encodeURIComponent(data))
System.out.println(un);      

繼續閱讀