2012-02-22 79 views
2

當我導入使用OLEDB CSV文件,奇怪的字符:˥«¿ 被添加到第一列OLEDB導入CSV文件 - 奇怪的字符:˥«¿添加

代碼:

string strConnectionString = string.Format("Provider=Microsoft.jet.OLEDB.4.0;Data  
    OleDbConnection SQLConn = new OleDbConnection(strConnectionString);   
    Source={0};Extended Properties='text;HDR=Yes;FMT=Delimited(,)';", strFile); 
    OleDbCommand selectCMD = new OleDbCommand("select * FROM ["+strFileName+"]") 
    selectCMD.Connection = SQLConn; 
    SQLAdapter.SelectCommand = selectCMD; 
    SQLAdapter.Fill(dtXLS); 

我文件從字形開始,在它之前沒有任何字符。 我得到的datatable第一列名稱爲「形狀 」爲什麼? 謝謝。

+0

文本導入器的歷史可以追溯到上個世紀。您可以在schema.ini文件中指定一個字符集,但它只支持OEM和ANSI。 Utf8不受支持,就像過去10年來飛機提供商一直不受支持一樣。您可以從列名稱中過濾物料清單,但是仍然存在垃圾收集字段數據的問題。你不能使用這個。考慮.NET TextFieldParser類。 – 2012-02-22 12:51:37

回答

2

這是一個編碼的問題 - (!好運谷歌搜索這樣的字符串),你看到的是被稱爲byte order mark什麼

找到更改編碼成UTF-8的方式,我懷疑它會走開。

+0

由於您使用的是Jet驅動程序(Excel),因此您可能會遇到此處提及的錯誤: http://stackoverflow.com/questions/155097/microsoft-excel-mangles-diacritics-in-csv-files – Bridge 2012-02-22 12:46:09

+2

非常感謝,我使用schema.ini來解決這個問題。 [fileName.csv] Format = CSVDelimited ColNameHeader = True CharacterSet = 65001 – Liat 2012-02-26 16:05:27