866 コードページ (DOS) としてエンコードされた dbf ファイルがあります。
以下のコードを使用して、それを読み取ろうとしています。問題は、ファイルがコード ページ 1252 であるかのように、取得した文字列が形成されることです。SO や他のフォーラムで他の質問を確認しましたが、これまでのところ運がありません。それを適切に読むためのホットなアイデアを探しています。
var ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\PathtoFile\;Extended Properties=""dBase 5.0""";
var dBaseConnection = new System.Data.OleDb.OleDbConnection(ConnectionString );
dBaseConnection.Open();
var dBaseCommand = new System.Data.OleDb.OleDbCommand("SELECT * FROM FileName",dBaseConnection);
var dBaseDataReader = dBaseCommand.ExecuteReader(CommandBehavior.SequentialAccess);
while( dBaseDataReader.Read()){
Encoding.GetEncoding(866).GetString(Encoding.GetEncoding(1252).GetBytes(dBaseDataReader.GetString(2)).Dump(); // Does not help
}