`
liu1028701143
  • 浏览: 34930 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

解决request中文乱码的问题

 
阅读更多

解决request中文乱码的问题

request.setCharacterEncoding(charset);必须写在第一次使用request.getParameter

()之前,

这样才能保证参数是按照已经设置的字符编码来获取。

response.setCharacterEncoding(charset);必须写在PrintWriter out =

request.getWriter()之前,

这样才能保证out按照已经设置的字符编码来进行字符输出。

通过过滤器,我们可以保证在Servlet或JSP执行之前就设置好了请求和响应的字符编码

但是这样并不能完全解决中文乱码问题:

对于post请求,无论是“获取参数环节”还是“输出环节"都是没问题的;

对于get请求,"输出环节"没有问题,但是"获取参数环节"依然出现中文乱码,所以在输

出时直接将乱码输出了。

原因是post请求和get请求存放参数位置是不同的:

post方式参数存放在请求数据包的消息体中。get方式参数存放在请求数据包的请求行的

URI字段中,

以?开始以param=value&parame2=value2的形式附加在URI字段之后。而

request.setCharacterEncoding(charset);

只对消息体中的数据起作用,对于URI字段中的参数不起作用。

当使用request.setCharacterEncoding(charset);时,只能解决表单方法为POST的中文

乱码情况,而方法为GET的依然为乱码。

解决GET乱码:


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics