OLEDB .dbf编码

时间:2015-04-03 19:13:28

标签: .net character-encoding oledb dbf

我正在使用DataSetOleDbConnection将.DBF读入OleDbDataAdapter并遇到编码问题。

.DBF文件应编码为UTF-8。在.DBF中,我们使用特殊字符(¬)作为特定字段的分隔符。当我在那个领域读书时,这个特殊角色是另一个角色(¼)。

我的连接字符串是Provider=Microsoft.Jet.OLEDB.4.0;Data Source=PATH_TO_DIRECTORY;Extended Properties="dBASE IV;charset=65001"。我根据我在MSDN Code Page Identifier页面找到的值以及其他论坛帖子(我看到有人)尝试了一些不同的charset值,例如utf820127utf8而不是数字。)

我也尝试将DataSet的Locale设置为System.Globalization.CultureInfo.GetCultureInfo("en-US")

我无法将数据更改为另一种格式,因为.DBF是shapefile的一部分,我宁愿不必执行查找/替换操作来修复字符串。我不能保留这个值,因为它会破坏对同一个.DBF的查询。

我还没有能够解决这个问题,也无法在OleDB编码问题上找到合适的论坛帖子。这似乎是一个纯粹的OleDB问题,因为其他驱动程序(更多面向GIS)可以很好地读取它。我宁愿不更改驱动程序,因为程序的其余部分使用OleDB

1 个答案:

答案 0 :(得分:0)

您不能在连接字符串中使用UTF-8编码 - 它只是不受支持。为了能够将UTF-8写入DBF,您应该将源ANSI文本转换为UTF-8字符串,然后编写它。反之亦然。