将编码为UTF-8的CSV文件导入Access

时间:2015-04-08 06:56:50

标签: csv ms-access utf-8 import ms-access-2010

此处还有一个先前的问题

Fast import of csv file into access database via VB.net 2010

我尝试在.NET应用程序(VB.NET 2010)中使用以下代码

cmd.CommandText =
"SELECT F1 AS id, F2 AS firstname " &
"INTO MyNewTable " &
"FROM [Text;FMT=Delimited;HDR=No;CharacterSet=850;DATABASE=C:\__tmp].table1.csv;"

它似乎工作,但当我在Access中打开数据库时,表格显示乱码。

我认为可能CharacterSet=850不是我的CSV文件的正确设置。我试着搜索一个字符集列表,但我找不到它。

我的.csv文件使用UTF-8。我应该将什么用于CharacterSet编号?

1 个答案:

答案 0 :(得分:1)

UTF-8的CharacterSet编号为CharacterSet=65001,因此您的CommandText应为

cmd.CommandText =
        "SELECT F1 AS id, F2 AS firstname " &
        "INTO MyNewTable " &
        "FROM [Text;FMT=Delimited;HDR=No;CharacterSet=65001;DATABASE=C:\__tmp].table1.csv;"

另请注意,此方法要求将UTF-8文件保存为而不是 BOM(字节顺序标记),这对Windows平台来说是不常见的。 (如果文件包含BOM,则第一条记录将作为空白字段导入。)