Chào anh chị, em mới tìm hiểu về cách kết nối Java với PostgreSQL và đang gặp vấn đề về việc in các dòng có Tiếng Việt ra. Cụ thể như hình bên dưới:
Đáng lẽ kết quả phải in ra Lê Thị Nhật.
package jdbc;
import java.sql.*;
import java.util.Properties;
import java.math.*;
public class Main {
static final String URL = "jdbc:postgresql://localhost:5432/jdbc?seUnicode=yes&characterEncoding=UTF-8";
static final String USER = "postgres";
static final String PASS = "12341234";
static final String QUERY = "SELECT * FROM account";
static final String UPDATE_QUERY = "insert into account values('Lê Thị Nhật', '45678')";
public Main() {
// TODO Auto-generated constructor stub
}
public static void main(String[] args) throws SQLException {
// start loading driver class
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
// finish loading driver class
// start get connection
Properties props = new Properties();
props.setProperty("user", "postgres");
props.setProperty("password", "12341234");
Connection conn = null;
conn = DriverManager.getConnection(URL, props);
// conn = DriverManager.getConnection(URL, USER, PASS);
// finish get connection
// create stmt
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(QUERY);
while (rs.next()) {
System.out.print(rs.getString(1) + " " + rs.getString(2) + "\n\n");
}
// stmt.executeUpdate(UPDATE_QUERY);
rs.close();
System.out.println("Closed ResultSet!");
stmt.close();
System.out.println("Closed Statement!");
conn.close();
System.out.println("Closed connection!");
}
}
Em đã thử một số cách như ?useUnicode=yes&characterEncoding=UTF-8
ở sau URL nhưng không có kết quả, em có tìm trên mạng nhưng chưa tìm được giải pháp ạ.
Database của em có encoding UTF8 rồi ạ
Trong PgAdmin4 thì nó vẫn hiện đúng Tiếng Việt:
Rất mong được anh chị giúp đỡ ạ. Em cảm ơn nhiều!