0

私は最近、当社の古いプログラムを変更しようとしています。私にとって大きな岩の 1 つは、古いプログラムが Borland C++ で作成され、SQL Server 2000 データベースに接続する独自の方法を持っていたことです。

8 年後、私はこのプログラムを廃止しようとしています。でも、データベースを見てびっくり!

データベース全体は、ペルシャ語であるはずの漠然とした言語で書かれていました。

SQL Server 2005 に変換されたデータベースの一部を提供しますので、ご自分で確認してください。私はこのデータを解読する方法を見つけようと何日も費やしました。しかし、これまでのところ結果は出ていません。

サンプル データベース ファイルへのリンク

Microsoft C#.net での使用方法を教えていただければ幸いです。

それらに使用されるデータ型は次のとおりです。 ここに画像の説明を入力

そして、これはそれがどのように見えるかです:

ここに画像の説明を入力

どうもありがとう。

4

1 に答える 1

0

1) 既存プログラムと独自データベースの分析

C++ プログラムがどのようにしてペルシャ語のテキストをデータベースに格納したかを調べてみてください。元のサーバー、データベース、および列レベルで定義されている照合は何ですか。

C++ プログラムは、データを変換してデータベースに保存したり、データベースから取得したりしますか? もしそうなら、方法を見つけてください。

プログラムがペルシャ語でデータを表示する可能性がありますが、互換性のある方法でデータを保存していません。または、カスタム エンコーディングをサポートするカスタム フォントを使用します。これらすべてを分析する必要があります。

2) スクリーン ショットは、すべてのペルシャ語が CHAR(128) より高い ASCII 文字としてエンコードされているように見えます。

これが標準化されたエンコーディングまたはカスタム作成の場合?

3) データベースを移行するには、ほとんどの場合、データ マッピングの元の文字を Unicode 文字に変換する必要があります。

最初に、Latin または Extended Latin のみをサポートする CHAR および VARCHAR ではなく、Unicode 対応の列 (NVARCHAR、NVARCHAR(MAX)) を使用してテーブルを再作成します。

4) データの移行に成功した場合でも、SSMS は、フォントの設定や OS のサポートにより、保存されたデータを正しく表示できない場合があります。

SSMSでUnicodeを表示する難しさをブログにまとめました。

ただし、最初に、元のデータベースとアプリケーションを調査する必要があります。

于 2012-11-14T10:57:02.723 に答える