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();
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章