我正在使用DataSet
和OleDbConnection
将.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
值,例如utf8
和20127
放utf8
而不是数字。)
我也尝试将DataSet的Locale
设置为System.Globalization.CultureInfo.GetCultureInfo("en-US")
。
我无法将数据更改为另一种格式,因为.DBF是shapefile的一部分,我宁愿不必执行查找/替换操作来修复字符串。我不能保留这个值,因为它会破坏对同一个.DBF的查询。
我还没有能够解决这个问题,也无法在OleDB
编码问题上找到合适的论坛帖子。这似乎是一个纯粹的OleDB
问题,因为其他驱动程序(更多面向GIS)可以很好地读取它。我宁愿不更改驱动程序,因为程序的其余部分使用OleDB
。
答案 0 :(得分:0)
您不能在连接字符串中使用UTF-8编码 - 它只是不受支持。为了能够将UTF-8写入DBF,您应该将源ANSI文本转换为UTF-8字符串,然后编写它。反之亦然。