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

<%
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