在终端和phpMyAdmin中均可以进行中文的模糊查询,唯独在jsp网页上无法进行中文模糊查询。设置表属性如下名字 类型 整理 属性 空 默认 额外 操作
1 studentName varchar(30) gb2312_chinese_ci 否 无
2 studentNum int(10) 否 无
3 sex varchar(10) gb2312_chinese_ci 否 无
4 studentAge int(11) 否 无
5 birthday date 否 无<%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
//在获取表单的头页面声明与上面的一致<html>
<body>
<%
String getname=new String(request.getParameter("name").getBytes("iso-8859-1"),"gb2312");
//获取表单数据out.println(getname);//打印测试是否能正确显示中文,结果可以正常打印出表单中的中英文。Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:8889/szu","root","root");
Statement stat= conn.createStatement();String sql="SELECT *FROM student  WHERE studentName like '%" + getname + "%'";
//模糊查询姓名, 当 getname 为英文时可以正常获取mysql里的数据并输出信息。当 getname 为中文时无法得到数据,显示空白。
ResultSet rs=stat.executeQuery(sql);
while(rs.next()){
String stuno=rs.getString("studentNum");
String stuname=rs.getString("studentName");
String sex=rs.getString("sex");
String age=rs.getString("studentAge");
String birthday=rs.getString("birthday");
out.println(stuno+" "+stuname+" "+sex+" "+age+" "+birthday+ "<br>");
}stat.close();
conn.close();
 %>
</body>
</html>求高手解答谢谢!