读MYSQL表,为什么读出来的中文是‘????’??
java吧
全部回复
仅看楼主
level 1
gxh387 楼主
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class conncetdata { public static void main(String[] args) { try { Class.forName("org.gjt.mm.mysql.Driver").newInstance(); //String url ="jdbc:mysql://192.168.0.1/lion?user=root&password=root" ; Connection con= DriverManager.getConnection("jdbc:mysql://192.168.0.1/aa","root","root"); Statement stmt=con.createStatement(); con.setCatalog("dy_oa"); String sql="select id from aa"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) { System.out.println(rs.getString(1)); } } catch (Exception e) { e.printStackTrace(); } } } 表结构aa CREATE TABLE `aa` ( `id` int(11) NOT NULL auto_increment, `类别编号` varchar(50) default NULL, `上一类别` varchar(50) default NULL, `类别名称` varchar(50) default NULL, `删除标记` int(1) default '0', `备注` text, PRIMARY KEY (`id`) ) TYPE=InnoDB 
2007年03月12日 02点03分 1
level 0
程序具体没看,初步感觉应该是编码问题。
2007年03月12日 02点03分 2
level 1
gxh387 楼主
已解决connection = DriverManager.getConnection( "jdbc:mysql://192.168.0.1/dy_oa?user=root&password=root&useUnicode=true&characterEncoding=GBK"); 这是告诉 jdbc driver 强制按指定参数转码
2007年03月12日 03点03分 3
1