2016-09-02 20 views
1

Sybase ASEデータベース・ダンプを取得し、Sybaseサーバに復元しました。キャラクタ・セットCP850 with Sybase ASE 15.7

データベース・サーバの文字セット:CP850

私はデータベースに接続し、アラビア語のデータを含む表から選択するために、SybaseのDBISQL(Interactive SQLのGUI)を使用してみました、私は、表示されるすべてのアラビア語の文字ができませんことがわかりました。

また、データ統合のためにTalend Open Studioを使用してSybaseデータベースに接続するためにjTDSを使用する際にも同じ問題が発生しました。

Power Builder 12を使用して同じSybaseサーバーに接続しようとしていましたが、特別な設定を行わずにアラビア文字を読むことができます。

jTDSのJDBC接続で「charSet」プロパティを使用しようとしました。「charSet = Cp850; sendStringParametersAsUnicode = false」です。

この問題に関する説明はありますか。

答えて

0

「dbisql」は、ASEサーバーに接続できないWatcom(SQL Anywhere)クライアントであるため、「DBISQL」を意味します。 とにかく、それは他のクライアントが明らかにそれを正しく表示するので、文字セット変換の問題です。したがって、DBISQLの文字セット変換フラグを把握する必要があります。たとえば、 'isql'を-Jフラグとともに使用することもできますが、これをコマンドラインから実行すると、ASCII以外の文字が正しく表示されないことがあります(クライアントではなく、コマンド行セッション)。

+0

DBISQLを使用すると、charset cp850も指定しますが、アラビア文字は表示できませんでした。 アラビア文字を表示するのに成功したのはPower Builderだけです。 –

+0

この問題は何とかODBC接続に関連していると思います。 JDBCではなくODBC接続を使用しているPowerbuilderとして。 PowerBuilderと同じODBC接続を作成してsybaseに接続しようとします。そして、java odbc bridgeを使用してそれを使用します。 –

0

アラビア語が必要な場合は、cp850はServerまたはClientのどちらでも動作しますか?私が見る、あなたがアラビア語なものの一つであることがサーバー上でソート順が必要だと思う8ビット文字セットの場合

http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc31654.1570/html/sag1/sag1501.htm

次に、あなたのクライアントは何の翻訳を持つべきではありませんか、 (CP 864、CP 1256、ISO 8859-6。)彼らはcp864やcp1256、iso88596のようなクライアントの識別子を持っていると思います。

+0

私は、サーバー のcharset -Usa -P binary.srt cp1256 は、isqlを-Usa -P ます。sp_configure 'ID SORTORDERデフォルト'、50 'cp1256' にソート順変更しようとしましたが、それでも私はアラビア語のデータを読み取ることができますPowerBuilderのみから、DBISQLまたはjTDSまたはjConnectを使用しているアプリケーションからアラビア語の文字を読み取ることができませんでした –

+0

アラビア文字がデータベースにあることを最初に確認します。bcpを使用して列内のアラビア語文字で表をアンロードし、8進ダンプ "od -x"を使用してそれらを表示してください(cp1256またはISO/IEC 8859-6のウィキペディアにコーディングがありますまた、Word for Windowsで適切に設定されていることも確認できます。 –

+1

アラビア文字が正しく存在することがわかっている場合は、サーバーから読み込むときに変換しないでください。アラビア文字も使用できる文字セットに変換するだけです(どのように指定しないか、 DBISQLまたはjTDSの変換)最後に文字を表示していますか?あなたはそれが何であれ(unixターミナル、SQLフロントエンド、エディタ、ワードプロセッサ)アラビア語を表示することができ、使用している文字セットを表示するように設定されていることを確認する必要があります。 –

0

この問題は、SybaseへのODBC接続を使用することで完全に解決されました。 私の解決策:WindowsのシステムsdnデータソースでODBC接続を作成し、このODBC接続をJDBC-ODBCブリッジで使用しました。正しい文字が見つかりました。 また、このODBC接続を使用してMS SQL Server Linkedサーバーを作成しようとしましたが、正しい文字でデータを取得しました。 ありがとうございました。

関連する問題