WEB项目中的中文乱码问题

目录:html

、Request中文乱码tomcat

2、tomcat 中文乱码post



1、Request中文乱码
编码

解决request中文乱码的问题spa

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

()以前,htm

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

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

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乱码:

String str =request.getParameter("URL后面的变量名");

 

byte b[] =str.getBytes("ISO-8859-1");

 

str = newString(b);

相关文章
相关标签/搜索