0


Oracle 11g データベースにアラビア文字を保持しようとしています。アラビア語の文字列を永続化すると、それらは正常に永続化されますが、データベースでは疑問符 ??????? として表示されます。

検索したところ、データベースのエンコーディングに問題がある可能性があることがわかりましたが、SQLDeveloper からアラビア語の文字列を書き込んで DB をコミットできるので、そうではないかもしれません。DB テーブル内に正しく表示されます。また、そのフィールドを取得して画面に表示すると、正しく表示されます。

このことから、DB はアラビア語を認識し、問題はないと結論付けました。クライアント/サーバー地域の言語設定を試してみましたが、それでも問題は解決しませんでした。この投稿を読んでその提案を試してみたところ、永続化レイヤーに問題がある可能性があり、アラビア文字が適切に処理されないことがわかりました。これに対する解決策は何ですか?

これが冗長な質問かどうかはわかりませんが、必死です。ヘルプ/アドバイスをいただければ幸いです。

私が使用しているシステム:
サーバー: Oracle Thin 11g
IDE: IBM WebSphere Integration Developer with JSF 1.2
注: まだ初心者です。

編集

コードを挿入:

       String a = "اشتغل";
       byte[] b = a.getBytes("UTF-8");
       String c = new String(b,"UTF-8");
       localLgInst.setBdStatus(c);
       System.out.println("status " + localLgInst.getBdStatus()); 
       entityManager.persist(localLgInst);
       entityManager.flush();

localLgInst はエンティティのインスタンスです。現在、文字列をハードコーディングしています。システム出力は、文字列を IDE のコンソールだけでなく ??????? にも出力します。

4

2 に答える 2

0

アラビア語のテキストを NVARCHAR 列に書き込んでみてください

于 2013-08-27T09:25:31.073 に答える