【问题标题】:OLEDB .dbf EncodingOLEDB .dbf 编码
【发布时间】:2015-04-06 21:33:44
【问题描述】:

我正在使用OleDbConnectionOleDbDataAdapter 将.DBF 读入DataSet,并且遇到了编码问题。

.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 值,例如 utf820127 )。

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

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

我还不能更正这个问题,也无法在OleDB 编码问题上找到合适的论坛帖子。这看起来纯粹是OleDB 问题,因为其他驱动程序(更面向 GIS)可以很好地阅读此内容。我也不想更改驱动程序,因为程序的其余部分使用OleDB

【问题讨论】:

    标签: .net character-encoding oledb dbf


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-27
      相关资源
      最近更新 更多