我想从数据库读取数据。数据为阿拉伯语。我的数据库的字符集是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);
}
}
首先要判断表中的数据是否存储正确。如果是,则显示有问题。
检查您是否在程序运行的客户端为
NLS_LANG
环境变量设置了正确的值。
确保您的程序运行所在的终端程序能够显示所需的字符。
要确定数据库内容是否已损坏,您可以尝试执行“select dump(words_urdu) from finally where dffgg=430;”。这将显示存储在数据库中的实际字符。如果在数据插入时未正确设置
NLS_LANG
环境变量,数据库中的数据可能会损坏。