2012-02-22 76 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