Javascript传递中文参数到Java后端

1. 背景

一般不建议从前台往后端传递中文参数,但是有些时候这件事是难免的,比如网页中按关键字搜索时。


传递中文参数往往会遇到乱码问题,此处给出后端为Java时的示例代码。


2. 前端编码

为防止中文参数乱码,可以在传递前对参数进行编码,如下:


var keyword=$("#input-keyword").val();//获取输入框的值

var encodedKeyword=encodeURIComponent(keyword);//实现编码



3. 参数传递

通过ajax将参数传递到后端,示例如下:


$.ajax({

  timeout:20000,

  type:"POST",

  dataType:"JSON",

  url:"/search.do",

  data:encodedKeyword,

  success:function(msg){

   console.log(msg);

  }

});


4. 后端解码

String encodedKeyword=req.getParameter("encodedKeyword");//此处Servlet会自动解码一次,默认是以ISO-8859-1进行解码

try {

 String keyword= URLDecoder.decode(encodedKeyword , "UTF-8");//此处按UTF-8进行解码

} catch (UnsupportedEncodingException e) {

 e.printStackTrace();

上一篇:RDS数据库和ECS自建数据库主从复制,数据同步


下一篇:MongoDB 聚合框架