如何使用不同的编码导入/读取CSV文件

时间:2011-09-16 11:27:08

标签: c# csv oledb

我正在尝试使用以下代码

读取/导入CSV到数据集
if (!File.Exists(file))
{
    File.Create(file).Close();
}

OleDbConnection connection = new System.Data.OleDb.OleDbConnection(
    "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = " + Path.GetDirectoryName(file) + 
    "; Extended Properties = \"Text;Excel 12.0;HDR=" + _AllowHeader + ";FMT=Delimited\"");

connection.Open();

string Query = "Select " + Count + " from [" + Path.GetFileName(_filename) + "]";

OleDbDataAdapter Adaptar = new System.Data.OleDb.OleDbDataAdapter(Query, connection);
Adaptar.Fill(DataSet);

使用ANSI编码的csv文件很好,因为我可以导入,但是当我尝试导入UTF-8或Unicode(编码)CSV文件时,我在列名称中获得了字节顺序标记(BOM)。

我的问题是如何防止这种情况并导入任何编码的CSV文件?

1 个答案:

答案 0 :(得分:1)

您最好使用Jet / Ace驱动程序之外的其他内容来读取或解析CSV数据。在工作中,我们使用这个免费的库:http://www.filehelpers.com/

查看文档似乎支持不同的编码类型。