3

Oracle データベースに大量のデータを挿入しています。

そのデータベースでは、テキストは windows-1252 形式で保存されます。

入力するものがたくさんあることが判明し、それらすべてをこの形式に変換する必要があります。また、これらのデータはすべてアラビア語です。

アラビア語の単語を Windows-1252 形式にエンコードするオンライン コンバーターまたはツールを見つけるのを手伝ってくれる人はいますか?

*詳細が十分であることを願っています

--ランガナ

4

2 に答える 2

1

windows-1252 はアラビア文字をまったくエンコードしないため、変換を行う唯一の方法は、何らかの音訳を使用することです。これは、エンコード変換 (文字のアイデンティティは変更せず、コード化された表現のみを変更する) とはまったく異なるものです。

アラビア語には多数の音訳 (ローマ字化) スキームがあります。それらのほとんどすべては可逆的ではなく、ほとんどすべてが完全自動処理には適していません (主に、通常のアラビア語の書き方では短母音は示されませんが、ほとんどの音訳スキームでは短母音が示されるためです。つまり、音訳者は単語がどのように発音され、母音文字を挿入します)。

windows-1256 に変換してから、windows-1256 でエンコードされたデータを raw バイトとしてデータベースに挿入することで、変換を偽装することができます。次に、データベース内の各値のエンコーディングを追跡して、どのバイトが windows-1252 で、どのバイトが実際には windows-1256 であるかを把握する必要があります。これはごちゃごちゃしているように聞こえるので、データベースを変換して UTF-8 を使用できるかどうかを検討してください。

于 2012-06-19T06:16:05.180 に答える
1

Win32 API のペアである MultiByteToWideChar と WideCharToMultiByte を使用すると、コード ページ エンコーディングを Unicode に、Unicode データをコード ページ エンコーディングにそれぞれ変換できます。これらの API はそれぞれ、その変換に使用されるコード ページの値を引数として受け取ります。したがって、特定のコード ページの値 (例: アラビア語の場合は 1256) を指定するか、次のような定義済みのフラグを使用することができます。

  • CP_ACP: 現在選択されているシステム Windows コード ページ用
  • CP_OEMCP: 現在選択されているシステム OEM コード ページ用
  • CP_UTF8: UTF-16 と UTF-8 間の変換用
于 2012-06-19T05:20:35.917 に答える