我想从数据库中读取数据。数据是阿拉伯语。我的数据库的字符集是AL32UTF8。 当我试图检索数据时,我得到“????” 请回复如何解决这个问题 这是代码
public static void main(String[] args) {
// TODO Auto-generated method stub
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String username = "hr";
String password = "hr";
String sql = "SELECT WORDS_URDU FROM FINALLY WHERE DFFGG=430";
Connection connection;
try {
connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery(sql);
while(rs.next())
{
System.out.println(rs.getString(1));
}
//System.out.println(statement.execute(sql));
connection.close();
} catch (SQLException e) {
System.err.println(e);
}
}
答案 0 :(得分:1)
首先要确定的是表中的数据是否正确存储。如果是,则显示问题。
检查是否在运行程序的客户端上为NLS_LANG
环境变量设置了正确的值。
确保运行程序的终端程序能够显示所需的字符。
要确定数据库内容是否已损坏,您可以尝试从最终dffgg = 430;'中选择'select dump(words_urdu)。这将显示存储在数据库中的实际字符。如果在数据插入时未正确设置NLS_LANG
环境变量,则数据库中的数据可能已损坏。
希望有所帮助。