Javascript傳遞中文參數到Java後端

背景

一般不建議從前臺往後端傳遞中文參數,但是有些時候這件事是難免的,比如網頁中按關鍵字搜索時。

傳遞中文參數往往會遇到亂碼問題,此處給出後端爲Java時的示例代碼。

前端編碼

爲防止中文參數亂碼,可以在傳遞前對參數進行編碼,如下:

var keyword=$("#input-keyword").val();//獲取輸入框的值
var encodedKeyword=encodeURIComponent(keyword);//實現編碼

參數傳遞

通過ajax將參數傳遞到後端,示例如下:

    $.ajax({
            timeout:20000,
            type:"POST",
            dataType:"JSON",
            url:"/search.do",
            data:encodedKeyword,
            success:function(msg){
                console.log(msg);
            }
    });

後端解碼

    String encodedKeyword=req.getParameter("encodedKeyword");//此處Servlet會自動解碼一次,默認是以ISO-8859-1進行解碼
    try {
        String keyword= URLDecoder.decode(encodedKeyword , "UTF-8");//此處按UTF-8進行解碼
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章