JSP中乱码问题

【转】http://www.iteye.com/topic/483158

1、POST方式存取数据、GET取数据都可以使用过滤器来修改编码方式

核心代码:

request.setCharacterEncoding(characterEncoding);

 

2、GET发送数据时,使用上述设置无效。原理如下:

post请求和get请求存放参数位置是不同的。

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

get方式参数存放在请求数据包的请求行的URI字段中,以?开始以param=value&parame2=value2的形式附加在URI字段之后。

而request.setCharacterEncoding(charset) 只对消息体中的数据起作用,对于URI字段中的参数不起作用,因此无效。

可以使用如下任意一种方式来修改:

(1)在tomcat中修改配置文件,增加URIEncoding="UTF-8",位置/conf/servr.xml,修改代码如下:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>

(2)使用过滤器,核心代码:

String paramValue = request.getParameter("paramName");
paramValue = new String(paramValue.trim().getBytes("ISO-8859-1"), charset);

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。