2014-12-03 71 views
0

我需要導出從unicode到mysql的表格到java通過csv文件。它在excel中輸出很好,但unicode tamil字體不顯示。數據庫連接通過java將mysql從unicode導出到csv文件

代碼:

 String db_dburl = "jdbc:mysql://"+Config.databaseip+":3306/"+Config.databasename; 
     String dburl_unicode = db_dburl.concat("?useUnicode=true&characterEncoding=utf-8"); 
     Connection conn1 = DriverManager.getConnection(dburl_unicode, Config.databaseuname, Config.databasepwd); 

原始數據: 4 ACகலை-கலாசாரம் - 藝術文化AWவிருதுகள்விழாக்கள் - AWARDS功能 enter image description here

+0

您是否試圖在記事本中打開csv文件而不是在Excel表格中? – 2014-12-03 06:58:54

+0

是的,它是開放的,因爲在記事本 – Dhinakar 2014-12-03 07:00:23

+0

但是,當我用utf-16格式導出它直接導出罰款,但它不可能使用「?useUnicode = true&characterEncoding = utf-16」 – Dhinakar 2014-12-03 07:01:55

回答

0

您需要指定Java選項文件編碼在運行期間。例如,如果Tomcat Web服務器運行時:加入參數如下 -Dfile.encoding = 「UTF-8」

或設置環境變量JAVA_TOOL_OPTIONS爲-Dfile.encoding = 「UTF-8」

0

首先包括以下.jar文件

你需要添加opencsv-2.3.jar

請參閱該代碼。

import java.io.FileNotFoundException; 
    import java.io.FileWriter; 
    import java.io.IOException; 
    import java.sql.*; 
    import java.util.ArrayList; 
    import java.util.List;  
    import au.com.bytecode.opencsv.CSVWriter; 

    public class WriteCSV { 
     public static void main(String[] args) { 

      try { 
       String connectionURL = "jdbc:mysql://localhost:3306/test"; 
       Class.forName("com.mysql.jdbc.Driver"); 
       Connection con = DriverManager.getConnection(connectionURL, "root", "root"); 
       Statement stmt = con.createStatement(); 
       ResultSet rs = stmt.executeQuery("select id_movie, movie_name from movies"); 
       String csv = "E:\\dummyFolder\\output2.csv"; 
       CSVWriter writer = new CSVWriter(new FileWriter(csv)); 
       List<String[]> data = new ArrayList<String[]>(); 
       while (rs.next()) 
       { 
        data.add(new String[] { rs.getString(1), rs.getString(2) }); 
       } 
       writer.writeAll(data); 
       System.out.println("CSV written successfully."); 
       writer.close(); 

      } 
      catch (ClassNotFoundException e) { 
       e.printStackTrace(); 
      } 
      catch (SQLException e) 
      { 
       e.printStackTrace(); 
      } 
      catch (FileNotFoundException e) 
      { 
       e.printStackTrace(); 
      } 
      catch (IOException e) 
      { 
       e.printStackTrace(); 
      } 
     } 
    }