我想用jsp显示数据表表头的值?可是显示出来是乱码!
mysql数据库中存储的是中文.代码如下:
 ResultSetMetaData statName= rs.getMetaData();          
   for(int i=1;i<=statName.getColumnCount();i++){
    out.print(statName.getColumnName(i));      
   }无论直接输出还是编码转化都是乱码.数据库中显示正常。
new String(str.getBytes("iso-8859-1"),"GB2312");
jsp文件如下:
<%@ page language="java" import="java.sql.*" contentType="text/html;charset=gb2312"%><html>
  <head>
    <title>My JSP '1.jsp' starting page</title>
  </head>
  
  <body>
    <%
        Connection con=null;
Statement stmt=null;
ResultSet rs=null;
String sql="";
String xy="理学院";
String bynf="2006";
request.setCharacterEncoding("gb2312");
//response.setCharacterEncoding("gb2312");
 
    sql="select taizhang2.姓名,taizhang2.身份证 from biyes,taizhang2 where biyes.身份证号=taizhang2.身份证 and 院系所 like '%"+xy+"%'and taizhang2.毕业年份='"+bynf+"'"; 
    try{
     Class.forName("com.mysql.jdbc.Driver").newInstance();//加载驱动程序
     String url="jdbc:mysql://localhost:3306/dhgl";     
     con=DriverManager.getConnection(url,"root","root");     //建立连接
     System.out.println("数据库连接成功,准备插入数据......"); 
     stmt=con.createStatement();
     rs=stmt.executeQuery(sql);
     ResultSetMetaData statName= rs.getMetaData();
     //System.out.println(statName.getColumnCount());
     response.setCharacterEncoding("gb2312");
     for(int j=1;j<=statName.getColumnCount();j++)
     {
   out.println(statName.getColumnName(j)+"<br>");
     }   
    }
    catch(ClassNotFoundException ce)
{ System.out.println(ce); }
catch(SQLException se)
{ System.out.println(se); } 
catch(Exception e)
{ System.out.println(e); }
   %>
  </body>
</html>