1

netbeans を使用して MS SQL Server から結果を取得しようとしています。

問題は、受け取ったデータベースからアラビア語の単語を取得するとき?????です。

誰でも助けることができますか?

コードは次のとおりです。

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);
        }
4

2 に答える 2

1
  • 多くの検索の後、アラビア語の列をvarbinaryにキャストし、Javaプロジェクトでそれをバイトとして取得し、バイト配列をコンストラクターパラメーターとして受け取る新しい文字列を作成するという非常に優れた回避策を見つけました。アラビア語エンコーディング「Windows-1256」を使用して、アラビア文字の正しい値をマップします

    • ここにコードのサンプルがあります

SQL 選択ステートメント:

select cast([column_name] as varbinary(max)) from [table_name] where [condition]

ジャバコード:

            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
            }
于 2015-02-08T17:20:09.173 に答える
1

データベース内のデータが正しく挿入されていません。アラビア語のデータをデータベースに挿入するときは、UT-8 を選択する必要があります。データベースの文字セットを AL32UTF8 に変更します。

于 2014-01-06T00:09:59.203 に答える