java 读取 Excel 数据库中文乱码

[code="java"][/code]

  try
  {
   Class.forName(driverName);
   dbConn = DriverManager.getConnection(dbURL, "", "");
   Statement smt = dbConn.createStatement();
   ResultSet set = smt.executeQuery("select * from [sheet1$]");
  int i =0;
   while (set.next())
   {
    System.out.print(i + "\t") ; 
    String str1 = set.getString(1);
    String str2 = set.getString(2);
    String str3 = set.getString(3);
    if (str1 != null){
         System.out.print(new String(str1.getBytes("ISO-8859-1") ,"gbk") + "\t") ; 
    }

    if (str2 != null){
         System.out.print(new String(str2.getBytes("ISO-8859-1") ,"utf-8") + "\t") ; 
    }

    if (str3 != null){
         System.out.println(new String(str3.getBytes("ISO-8859-1") ,"gb2312") + "\t") ; 
    }

    i ++;
   }
  } catch (ClassNotFoundException e)
  {
   e.printStackTrace();
  } catch (SQLException e)
  {
   e.printStackTrace();
  } finally
  {

[img]http://dl2.iteye.com/upload/attachment/0088/0295/95b4bfef-bd6a-38bd-a108-734d678d064e.gif[/img]

中文乱码,求解药 [code="java"][flash=200,200][img][/img][/flash][/code]

new String(set.getBytes(1),"gbk")
这样呢,用byte取出来

确定在数据库中不是乱码么?

输出的结果在编码未转之前是什么内容,也是问号?

从以下几个方面检查你的乱码问题:
1.数据库中是否是乱码,若是,那就不是程序中的问题了;
2.从数据库中读取时的链接字段,即你的dbURL,加上useUnicode=true&characterEncoding=gbk试试;
3.要不将其都改为UTF-8试一试。