我的java程序是这样写的,数据库选择的是mysql,为什么输出有问题呢?

数据库选用的是mysql,选用了odbc连接方式,只是不知道为什么汉字是乱码……(说明我已将mysql的字符集改成了utf-8,,另外我的eclipse选用的也是utf-8字符集)
package database;
import java.sql.*;
public class Test_DB {
public static void main(String[] args) throws Exception, SQLException {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:testApp",
"root", "198974");
Statement sql = conn.createStatement();
//ResultSet rs= sql.executeQuery("insert into stu values (6,'lucy','303'");
ResultSet rs = sql.executeQuery("select * from stu where class='302'");
System.out.println("序号\t"+"姓名\t"+"班级");
while (rs.next()) {
System.out.print(rs.getString(1)+"\t");//输出序号
System.out.print(rs.getString(2)+"\t");//输出姓名
System.out.println(rs.getString(3));//输出班级

}
}

}

程序的结果为:
序号 姓名 班级
1 ??? 302
2 ??? 302
4 ?? 302
5 ?? 302

第1个回答  2010-11-28
mysql里面取到的就是乱码,不信你试试,到Java里面当然还是乱码
第2个回答  2010-11-28
直接登录看mysql是不是乱码,如果是的话,建议通过jdbc来访问。
第3个回答  2010-11-28
System.out.print(new String(rs.getString(2).getBytes(),"utf-8")+"\t");//输出姓名
这样试试吧本回答被网友采纳