jsp页面显示不出mysql中查询出的中文字符串,插入中文也不好使

用Eclipse编写的jsp页面,连接的是mysql数据库。英文和数字都能正常显示,中文就显示不了。<%@pagecontentType="text/html;chars... 用Eclipse编写的jsp页面,连接的是mysql数据库。英文和数字都能正常显示,中文就显示不了。
<%@page contentType="text/html;charset=UTF-8"import="java.sql.*"%>
<html>
<title>用户注册</title>
<body>
<%
Connection con=null;
Statement stmt=null;
ResultSet rs=null;

request.setCharacterEncoding("UTF-8");
String no=request.getParameter("no");
String name=request.getParameter("name");
String age=request.getParameter("age");
String email=request.getParameter("email");
String tel=request.getParameter("tel");
%>
<h4>您提交的内容如下</h4>
no:<%=no%><br/>
name:<%=name%><br/>
age:<%=age%><br/>
email:<%=email%><br/>
tel:<%=tel%><br/>
<h4>使用jdbc将用户注册信息保存到数据库中</h4>
<%
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/hello?user=root&password=12345&useUnicode=true&characterEncoding=GB2312");
stmt=con.createStatement();
String upd="INSERT INTO people(no,name,age,email,tel)"+"values('"+no+"','"+name+"','"+age+"','"+email+"','"+tel+"')";
//out.println(upd);
stmt.executeUpdate(upd);
String query="select * from people";
rs=stmt.executeQuery(query);
%>
<h4>从people中取出所以数据</h4>
<table border="1">
<tr>
<th>号码</th>
<th>姓名</th>
<th>年龄</th>
<th>email</th>
<th>电话</th>
</tr>
<%
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getString("no")+"</td>");
out.println("<td>"+rs.getString("name")+"</td>");
out.println("<td>"+rs.getString("age")+"</td>");
out.println("<td>"+rs.getString("email")+"</td>");
out.println("<td>"+rs.getString("tel")+"</td>");
out.println("</tr>");
}
}catch(SQLException sqle)
{out.println("sqle="+sqle);}
finally {try{rs.close();
stmt.close();
if(con!=null)con.close();
}
catch(SQLException sqle){out.println("sqle="+sqle);}
}
%>
</table>
</body>
</html>

若插入no=4,name=啊,age=3,email=3,tel=3则不能正常显示
即使提交的页面和数据库使用的是都是UTF-8也无法正常显示,字符以两个?的方式显示出来,怎么弄啊?帮帮忙吧!
展开
 我来答
a332149354
2009-04-25
知道答主
回答量:89
采纳率:0%
帮助的人:35.1万
展开全部
中文编码的问题,你提交的是UTF-8,数据库使的是gb2312,当然有问题了,改成一致就好了。不过我推荐你写个过滤器去过滤它,很简单的,我就不给你代码了,自己写才能加深记忆。
熬飞雨Ax
2009-04-25 · TA获得超过343个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:191万
展开全部
明显编码问题啊 统一编码 认定这个项目有什么编码 所有地方都要统一
<%@page contentType="text/html;charset=UTF-8"import="java.sql.*"%>

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/hello?user=root&password=12345&useUnicode=true&characterEncoding=GB2312");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiejinzhing
2009-04-28 · TA获得超过242个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:140万
展开全部
这是因为你mysql的字符编码设置的问题,在mysql中执行下面的语句就可以了
执行语句:mysql> alter table tablenames modify 字段名 char(20) character set gbk;就可以了

参考资料: http://zhidao.baidu.com/question/90128061.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式