代码改变世界

为什么java.net.URLEncoder.encode方法要调用两次而不是一次呢?

2013-01-03 17:54  eoeAndroid社区  阅读(287)  评论(0编辑  收藏  举报

因为在jsp中对中文进行了编码的时候用的是UTF-8的编码方式,而在servlet中调用request.getParameter();方法的时候使用服务器指定的编码格式自动解码一次,所以前台编码一次后台解码一次而解码和编码的方式不同所以造成了乱码的出现,所以要2次

searchBean.setKeyword(URLEncoder.encode(URLEncoder.encode(searchBean.getKeyword(), "utf-8"), "utf-8"));

String keyword=URLDecoder.decode(getParam("keyword"),"utf-8");