can';t使用java从sqlserver获取阿拉伯语字母
我正在尝试使用netbeans从MS SQL Server检索结果 问题是,当我从数据库中检索阿拉伯语单词时,我将其作为can';t使用java从sqlserver获取阿拉伯语字母,java,sql-server,database,netbeans,character-encoding,Java,Sql Server,Database,Netbeans,Character Encoding,我正在尝试使用netbeans从MS SQL Server检索结果 问题是,当我从数据库中检索阿拉伯语单词时,我将其作为?????接收 有人能帮忙吗 代码如下: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection("jdbc:odbc:yasser"); System.out.println("test"); Sta
?????
接收
有人能帮忙吗
代码如下:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection("jdbc:odbc:yasser");
System.out.println("test");
Statement sta = conn.createStatement();
String Sql = "select * from mainn order by id";
ResultSet rs = sta.executeQuery(Sql);
String res = null;
while (rs.next()) {
res = rs.getString("text");
System.out.println(res);
}
数据库中的数据插入不正确。将阿拉伯语数据插入数据库时,应选择UT-8。并将数据库的字符集更改为AL32UTF8。
- 经过大量搜索,我找到了一个非常好的解决方法,将阿拉伯语列转换为varbinary,然后在java项目中将其作为字节,然后创建一个新字符串,将字节数组作为构造函数参数,使用阿拉伯语编码“Windows-1256”映射阿拉伯字符的正确值的步骤
- 下面是一个代码示例
select cast([column_name] as varbinary(max)) from [table_name] where [condition]
java代码:
Statement stat = con.createStatement();
ResultSet rs = stat.executeQuery("select cast([column_name] as varbinary(max)) from [table_name] where [condition]");
while (rs.next()) {
byte[] tmp = rs.getBytes("column_name");
String cloumn_value = new String(tmp, "Windows-1256");
//cloumn_value arabic value
}
我就是这么做的。但它不起作用。