这是我的第一篇文章,我想感谢大家多年的帮助。这是有史以来第一次,我使用论坛,我想,这里的这个是最好的。所以现在足够了:-)我有以下代码:
public void ConnectToDBF(string pathToFile, string fileName)
{
string constr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathToFile + ";Extended Properties=\"dBASE IV;CharacterSet=1251;IMEX=1\"";
using (OleDbConnection con = new OleDbConnection(constr))
{
var sql = "select * from " + fileName;
OleDbCommand cmd = new OleDbCommand(sql, con);
con.Open();
DataSet dsMyDbfFile = new DataSet(); ;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dsMyDbfFile);
con.Close();
DataRow drMyDbfFile = dsMyDbfFile.Tables[0].Rows[0];
string test = drMyDbfFile[0].ToString();
Encoding wind1251 = Encoding.GetEncoding(1251);
Encoding utf8 = Encoding.UTF8;
byte[] wind1251Bytes = wind1251.GetBytes(drMyDbfFile[5].ToString());
byte[] utf8Bytes = Encoding.Convert(wind1251, utf8, wind1251Bytes);
string utf8String = Encoding.UTF8.GetString(utf8Bytes);
}
我试图从dbf文件中获取一些数据,但它运行正常。但当它中有特殊字符时,如ä,ö,é或类似的东西,那么我只会得到一个问号或其他令人困惑的字符。我试图将charset直接添加到connectionstring,但没有成功。然后我尝试转换它,但它仍然无法正常工作。我真的不知道,错误在哪里,我希望,你们中的任何人都可以帮助我。亲切的问候!
答案 0 :(得分:0)