我想使用VBA在Excel 2010中查询一个UTF-8编码的CSV文件,使用以下数据库连接:
provider=Microsoft.Jet.OLEDB.4.0;;data source='xyz';Extended Properties="text;HDR=Yes;FMT=Delimited(,);CharacterSet=65001"
所有的CSV文件都以BOM \xEF\xBB\xBF和标题行开始。但某些情况下,BOM不能被正确识别,并且第一个列标题会被读取为“?header_name”,即在列名前面出现了问号。我尝试过不同的字符集,也尝试使用Microsoft.ACE.OLEDB.12.0,但是目前为止一切都没有成功。
这是一个已知的漏洞吗?还是有什么方法可以在不更改源文件编码的情况下获取正确的第一个列标题名称?
Microsoft.Jet.OLEDB.4.0
可以使用。Connection:="TEXT;Path & Filename"
完全不适用吗?