我正在尝试使用以下代码
读取/导入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文件?
答案 0 :(得分:1)
您最好使用Jet / Ace驱动程序之外的其他内容来读取或解析CSV数据。在工作中,我们使用这个免费的库:http://www.filehelpers.com/
查看文档似乎支持不同的编码类型。