jsp servlet中文乱码问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 11:32:02
说明:
1.采用eclipse3.2+jdk1.6+mysql5.0+tomcat5.0
2.采用jsp+servlet+JavaBean方式
3.servlet中用System.out.println(**)可以在控制台打印出中文,通过url?的方式提交给jsp后,jsp中用request.getParameter("**").getBytes("ISO8859_1"),"GBK")方式接受并打印出的是乱码
4.在servlet中和jsp中都设置了编码方式:response和request的encoding,jsp中接受和传向浏览器的编码方式,都采用gb2312
5.浏览器在接受jsp页面时选择了中文编码
6.传值的时候如果是数字和字母都能正常传,用sendRedirect方式
如题,还是有中文乱码,望高手解决!

在 8080端口设置处,加上

URIEncoding="GBK" 即可。

http://www.javacn.org.cn

我给你说个方法可以处理你的难题。
1、新建一个类。
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.ServletException;

public class Encoder implements Filter
{
public void init(FilterConfig config) throws ServletException {}

public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException
{
request.setCharacterEncoding("GB2312");
chain.doFilter(request,response);
}

public void destroy() {}

}
2、在web.xml中加上配置。
<filter>
<filter-name>Encode