背景
一般不建議從前臺往後端傳遞中文參數,但是有些時候這件事是難免的,比如網頁中按關鍵字搜索時。
傳遞中文參數往往會遇到亂碼問題,此處給出後端爲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();
}