日期:2014-05-16  浏览次数:20355 次

java.net.URLEncoder.encode 和 js encodeURI 关系

以前在项目中处理过, 将一个字符串从前台页面(html)传到后台(J2EE项目),通过js中的encodeURI函数对字符串进行加密:

????????????????js代码:????? value =encodeURI(encodeURI(value);

然后再后台通过:

????????????????java代码:?? java.net.URLDecoder . decode (req.getParameter("value"),"UTF-8");

?对加密的字符串进行解析就OK!这样就解决了请求中文参数乱码问题!

但是,前不久项目中出现一个问题很郁闷,在后台同样通过java.net.URLDecoder. decode进行解析,但是前台的请求是JSP页面的一个<a href="">参数是一个java对象(例如:“我爱中国”)。开始想在java中找到一个与js中 encodeURI函数相同实现的方法 ,但是一直不如所愿,在网上也没有相关的资料,还是自己好好研究吧,嘿嘿,黄天不负有心人,经过几天努力还是被我找到了

??? java.net.URLEncoder.encode(“我爱中国”,"utf-8");与js encodeURI函数实现功能相同;

?

注:如果通过java.net.URLDecoder. decode("","utf-8")在后台进行解析,在jsp页面里就要对参数进行如下如理:

?????URLEncoder.encode(URLEncoder.encode("我爱中国","utf -8"),"utf-8");

?