Oracle データベースに大量のデータを挿入しています。
そのデータベースでは、テキストは windows-1252 形式で保存されます。
入力するものがたくさんあることが判明し、それらすべてをこの形式に変換する必要があります。また、これらのデータはすべてアラビア語です。
アラビア語の単語を Windows-1252 形式にエンコードするオンライン コンバーターまたはツールを見つけるのを手伝ってくれる人はいますか?
*詳細が十分であることを願っています
--ランガナ
Oracle データベースに大量のデータを挿入しています。
そのデータベースでは、テキストは windows-1252 形式で保存されます。
入力するものがたくさんあることが判明し、それらすべてをこの形式に変換する必要があります。また、これらのデータはすべてアラビア語です。
アラビア語の単語を Windows-1252 形式にエンコードするオンライン コンバーターまたはツールを見つけるのを手伝ってくれる人はいますか?
*詳細が十分であることを願っています
--ランガナ
windows-1252 はアラビア文字をまったくエンコードしないため、変換を行う唯一の方法は、何らかの音訳を使用することです。これは、エンコード変換 (文字のアイデンティティは変更せず、コード化された表現のみを変更する) とはまったく異なるものです。
アラビア語には多数の音訳 (ローマ字化) スキームがあります。それらのほとんどすべては可逆的ではなく、ほとんどすべてが完全自動処理には適していません (主に、通常のアラビア語の書き方では短母音は示されませんが、ほとんどの音訳スキームでは短母音が示されるためです。つまり、音訳者は単語がどのように発音され、母音文字を挿入します)。
windows-1256 に変換してから、windows-1256 でエンコードされたデータを raw バイトとしてデータベースに挿入することで、変換を偽装することができます。次に、データベース内の各値のエンコーディングを追跡して、どのバイトが windows-1252 で、どのバイトが実際には windows-1256 であるかを把握する必要があります。これはごちゃごちゃしているように聞こえるので、データベースを変換して UTF-8 を使用できるかどうかを検討してください。
Win32 API のペアである MultiByteToWideChar と WideCharToMultiByte を使用すると、コード ページ エンコーディングを Unicode に、Unicode データをコード ページ エンコーディングにそれぞれ変換できます。これらの API はそれぞれ、その変換に使用されるコード ページの値を引数として受け取ります。したがって、特定のコード ページの値 (例: アラビア語の場合は 1256) を指定するか、次のような定義済みのフラグを使用することができます。