首页

encodeURI加密和后台通过URLDecoder进行decode界面解决中文入参乱码问题

标签:encodeURIComponent,加密,解密,伪码,参数,ajax,encodeURI,搜索     发布时间:2016-08-01   

一、用例场景

之前中文搜索基于xmlHttp,中文入参没有任何问题,因最近搜索基于solr的搜索引擎,之前xmlHttp方式会报中文乱码问题,因此改为Ajax方式,对于中文入参使用encodeURI进行转为伪码显示,然后在后台通过java的URLDecoder.decode进行解密,从而解决乱码问题

二、代码示例

1.  前端脚本代码,Jquery库完整版本下载,请跳转到下载页

<html>@b@<body>@b@<input type="text" id="skey" value="输入关键词"/>@b@<button onclick="getData()">search</button>@b@</body>@b@</html>@b@<script>@b@function getData(){@b@    var skey=document.getElementById('skey').value; @b@   $.ajax({@b@      type: "GET",@b@      url: 'http://www.xwood.net/search/',@b@      dataType: 'JSON',@b@      data:{'q':encodeURI(encodeURI(str))},//加密转码@b@      error: function(){@b@        alert(e);@b@    }, @b@    success: function(result)@b@    {@b@        alert(result);@b@    }        @b@   })@b@}@b@</script>

2. 后台代码,使用java.net.URLDecoder的工具类进行解码中文,如下所示

String q=req.getParameter("q");@b@q=URLDecoder.decode(URLDecoder.decode(q),"utf-8");//解码中文