2011-07-20 1 views
2

DBFのエンコーディングを自動的に検出したいのですが、DBFファイルの構造にDBFファイルのヘッダに情報が含まれていません。私はDBF Viewerを使用していましたが、適切なエンコーディング情報が表示されます。だから私は彼らがどのようにそれを実装するか分からない。A DBFからのエンコーディングを検出する

私はDBFファイルの構造を調査しましたが、言語ドライバIDがありますが、CodePageテーブルのIDはありません。いずれにも手掛かりがありますか?

答えて

1

このサイトも、ヘッダ構造の内訳がget codepageという情報になっています。

他の回答と併せて、これを解決するとよいでしょう。私が持っていたリンクはすべてのコードページをリストしていませんが、.DBFからの検出のための場所と値を教えてくれます。

さらに、Visual Foxproも取得して変換する機能がありますが、 C#で使用できる最新のVisual Foxpro OleDB Providerを使用します。

機能が

CPDBF() CPCURRENT() CPCONVERT(ある)

あなたはこれらの機能の詳細を取得するには、Visual FoxProのオンラインヘルプを確認することができます。あなたは、C#を経由しては、VFPのEXECSCRIPT()の呼び出し..何かあなたの接続から、その後

String MultipleCmds = "ExecScript('[use SomeTable] + chr(13)+chr(10) + [return CPCURRENT()]') "; 

などでスカラーコールを実行し、上記のコマンドのスカラーを実行しなければならないことがあります。

+0

あなたはこれを行う別の選択肢を与えました。本当にありがとうございます。今回は、X86およびX64環境で使用する必要があるライブラリプロジェクトです。私が知る限り、OleDBはX64環境では使用できず、「任意のCPU」プラットフォームで構築することはできません。しかし、私はまだあなたのアプローチを使用するための変更があります。再度、感謝します。 – Howard

関連する問題