1

在查询 DBF 文件时,是否可以指定 OLEDB 应使用哪种字符编码?

一种可能的解决方法是在 OLEDB 调用 DBF 文件的字符编码之前对查询字符串进行编码,然后在返回时对所有结果进行编码。这会起作用,但如果 OLEDB 或可能的 ADO.NET 可以为我做到这一点,那就太好了。

更新

Viktor Jevdokimov的建议似乎不会自动起作用。但这让我调查了字符串的手动转换。可以使用 CultureInfo 的 TextInfo 属性找出 OemCodePage 和 WindowsCodePage 并使用它们来获取相应的 Encoding 实例进行手动转换。但我无法让 ADO.NET 使用这些编码为我执行转换。

4

1 回答 1

2

在执行 DBF SQL 之前,我更改了 CurrentThread 的 CurrentCulture 并在此后恢复:

Dim appCulture As System.Globalization.CultureInfo = System.Threading.Thread.CurrentThread.CurrentCulture
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US")
//execute command here
System.Threading.Thread.CurrentThread.CurrentCulture = appCulture
于 2009-09-25T07:16:10.390 回答