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();
}
私はアリをしたくありません。これはシンプルなJavaファイルであり、さらにエンコーディングはbig5と非常によく似ています – Arat
はい –