一、用例场景
之前中文搜索基于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");//解码中文