Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何导入/读取不同编码的CSV文件_C#_Csv_Oledb - Fatal编程技术网

C# 如何导入/读取不同编码的CSV文件

C# 如何导入/读取不同编码的CSV文件,c#,csv,oledb,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) + ";

我正在尝试使用以下代码将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文件?

您最好使用Jet/Ace驱动程序以外的其他工具来读取或解析CSV数据。在工作中,我们使用此免费库:


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

您最好使用Jet/Ace驱动程序以外的其他工具来读取或解析CSV数据。在工作中,我们使用此免费库:


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

的可能重复项请尝试并保持代码可读性!可能重复的请尝试并保持您的代码可读!