1、JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可, 2、数据库乱码 这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,解决方法如下: 在数据库连接字符串中加入编码字符集 String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312"; 并在页面中使用如下代码: response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312"); 3、中文作为参数传递乱码 当我们把一段中文字符作为参数传递个另一页面时,也会出现乱码情况,解决方法如下: 在参数传递时对参数编码,比如 RearshRes.jsp?keywords=" + java.net.URLEncoder.encode(keywords) 然后在接收参数页面使用如下语句接收 keywords=new String(request.getParameter("keywords").getBytes("8859_1")); response.sendRedirect("?gh=0001&xm=" + java.net.URLEncoder.encode("忘忧草")); String s=new String(request.getParameter("xm").getBytes("ISO8859_1"),"gb2312"); out.println(s); 4、JSP页面乱码加这句? <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="err.jsp" %> 5、在form中用get方法传参乱码解决方法 如: 1、 login.jsp <%@ page language="java" contentType="text/html;charset=GBK"%> <html> <head> <title>get传参乱码问题</title> </head> <body> <form name="form1" action="login_do.jsp" method="GET"> <input type="text" name="username"/><br> <input type="password" name="password"/><input type="submit" value="提交"/> </form> </body> </html> ============ 2、login_do.jsp <%@ page language="java" contentType="text/html;charset=GBK"%> <% String temp=request.getParameter("username"); if(temp!=null){ temp=new String(temp.getBytes("8859_1"),"GBK"); } out.println(temp); %>
a.jsp?name=张三 这是一个向另一个页面发送请求,并传递参数,但参数你用的是中文,所以要进行格式转换,给你个参考http://blog.csdn.net/joywy/article/details/8006645