jsp页面对mysql中的汉字进行搜索
来源:百度知道 编辑:UC知道 时间:2024/07/02 00:09:08
希望做到在文本框中输入内容,提交后从数据库读取出与输入内容相同的值
下面这段代码输入英文时正常运行,但是中文由于编码问题搜索不到,不知如何改正
最好能解释一下编码的原理,谢谢,搜索了好多网页了还是没有明白
-----------------------------------------------------------------
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'Read.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires&qu
下面这段代码输入英文时正常运行,但是中文由于编码问题搜索不到,不知如何改正
最好能解释一下编码的原理,谢谢,搜索了好多网页了还是没有明白
-----------------------------------------------------------------
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'Read.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires&qu
<%
Connection con;
Statement sql;
ResultSet rs;
String s=request.getParameter("search");
String sqlString;
这是因为s取出来的是乱码,如是英文就不会乱码,
很简单的设置一下request中的参数编码就可以解决问题,
在使用request.getParameter("")之前加上一句
request.setCharacterEncoding("GBK");就行了,
本例中,在String s=request.getParameter("search");
之前加上request.setCharacterEncoding("GBK");
("jdbc:mysql://localhost:3306/test?user=root&password=1234&useUnicode=true&characterEncoding=GBK");
后面改为:&useUnicode=true&characterEncoding=utf8
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gbk"%>
后面pageEncoding="gbk"%改成pageEncoding="UTF-8"%
参考下字符转换方法:
String str=new String(" ".getBytes("ISO8859-1"),"UTF-8");
如果还不行,就写个过滤器吧。
对String s=request.getPara