2011-09-16 43 views
1

我想讀/導入CSV到的數據與設置下面的代碼如何導入/讀取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

[讀取Csv文件編碼錯誤]的可能重複(http://stackoverflow.com/questions/434715/read-csv-file-encoding-error) –

+0

請儘量保持您的代碼可讀! – Justin

回答

1

您可能更擅長使用Jet/Ace驅動程序以外的內容來讀取或解析CSV數據。在工作中,我們使用這個免費的庫:http://www.filehelpers.com/

看看文檔,它似乎支持不同的編碼類型。

相關問題