2017-10-08 8 views
0

私は1つのテーブルを持ち、1つの列には漢字があります。 GBKエンコーディングを使用して1つの.txtファイルにデータを書き込もうとしていますが、文字化けしています。私はUTF8を使用している場合、それは正しい漢字を表示していますが、私はUTF8を使用したくありません。GBKエンコーディングを使用してテキストファイルに漢字を書き込む方法は?

String url = "jdbc:oracle:thin:@localhost:1521:TEST"; 
     String user = "testUser"; 
     String pwd = "testUser"; 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     Connection conn = DriverManager.getConnection(url, user, pwd); 
     String sql = "Select *from test_table where id=1234"; 
     PreparedStatement stmt = conn.prepareStatement(sql); 
     ResultSet resultSet = stmt.executeQuery(); 
     String fileName = "C:\\temp\\aaaa.txt"; 
     try (FileOutputStream os = new FileOutputStream(fileName)) { 
      PrintWriter pw = null; 
      pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(os, "GBK"))); 
      String[] data = new String[5]; 
      String line; 
      while (resultSet.next()) { 
       data[0] = resultSet.getString(1); 
       data[1] = resultSet.getString(2); 
       data[2] = resultSet.getString(3); 
       data[3] = resultSet.getString(4); 
       data[4] = resultSet.getString(5); 
       line = setLine(data); 
       System.out.println(line); 
       pw.print(line); 
      } 
      pw.flush(); 
     } 
    } 

    private static String setLine(String[] data) { 
     StringBuilder line = new StringBuilder(); 
     String delim = ","; 
     int count= data.length; 
     for (int i = 0; i < count; i++) { 
      if (i > 0) 
       line.append(delim); 
      if (data[i] != null) { 
       line.append(data[i]); 
      } 

     } 

     return line.toString(); 
    } 

答えて

1

build.xmlでタスクのエンコードオプションを指定していますか?

<javac encoding="GBK" ...> 

これを試してみてください。

+0

私はアリをしたくありません。これはシンプルなJavaファイルであり、さらにエンコーディングはbig5と非常によく似ています – Arat

+0

はい –

関連する問題