首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

JSP写入数据库中文乱码有关问题

2013-10-24 
JSP写入数据库中文乱码问题小弟在学习表单,按照课本上写的在myclipse输入以下代码,当在表单项中输入中文时

JSP写入数据库中文乱码问题
小弟在学习表单,按照课本上写的在myclipse输入以下代码,当在表单项中输入中文时,数据库中总是会显示‘?’,久久无法解决,忘大神能帮小弟一把!感激!
以下是JSP代码部分:
<%@ page language="java"  contentType="text/html;charset=gb2312"  import="java.sql.*"  %>
<%
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 'register.jsp' starting page</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

  </head>
  
  <body>
    <% request.setCharacterEncoding("gb2312"); %>
              
              添加学生信息<br>
    
    <form  method="post">
                          输入学号:<input type="text" name="stuno"><br>
                          输入姓名:<input type="text" name="stuname"><br>
                          输入性别:<input type="radio" name="sex" value="男" checked>男
            <input type="radio" name="sex" value="女">女
            <input type="submit" value="添加">
     </form>    
     
     <%
           
           String stuno=request.getParameter("stuno");
           //stuno=new String(stuno.getBytes("ISO-8859-1"),"gb2312");
           String stuname=request.getParameter("stuname"); 
           //stuname=new String(stuname.getBytes("ISO-8859-1"),"gb2312"); 
           String stusex=request.getParameter("sex");
           //stusex=new String(stusex.getBytes("ISO-8859-1"),"gb2312");
             
               
               if(stuno!=null){
                Class.forName("com.mysql.jdbc.Driver");
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/school","root","mysqladmin");
                PreparedStatement ps= null;
                ResultSet rs=null;
                String sql="select stuno from t_student where stuno=?";
                ps=conn.prepareStatement(sql);
                ps.setString(1,stuno);
                rs=ps.executeQuery();
                if(rs.next()){
                     out.println("对不起,学号存在!");
                             }
            else{ 
                 sql="insert into t_student(stuno,stuname,stusex)values(?,?,?)";
                 ps=conn.prepareStatement(sql);


                 ps.setString(1,stuno);
                 ps.setString(2,stuname);
                 ps.setString(3,stusex); 
                 ps.executeUpdate();
                 out.println("添加成功!");
                }    
                ps.close();
                conn.close();
             }
            
      %>  
                     
  </body>
</html>
JSP??数据库?中文乱码
[解决办法]
转什么编码,java编写的程序就统一用UTF-8编码,如数据库,jsp页面等都用UTF-8就不会乱码了,如果你不用UTF-8,就参考这种方法 http://www.ablanxue.com/prone_1089_1.html
[解决办法]
保持所有的编码一致。
http://blog.csdn.net/withiter/article/details/7288649
[解决办法]
终极解决方案,做了之后就永远不用考虑乱码问题,用一个乱码的过滤器~~上网百度下,没多少代码,copy到项目里,一劳永逸,

热点排行