如何在查询DBF时指定OLEDB使用的字符编码?

时间:2009-09-25 06:58:46

标签: .net ado.net character-encoding oledb dbf

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

可能的解决方法是在OLEDB调用DBF文件的字符编码之前对查询字符串进行编码,然后在返回它们时对所有结果进行编码。这可行,但如果OLEDB或ADO.NET可以为我做这件事会很好。

更新

Viktor Jevdokimov的suggestion似乎不会自动生效。但它让我调查了字符串的手动转换。可以使用CultureInfo的TextInfo属性来查找OemCodePage和WindowsCodePage,并使用它们来获取相应的Encoding实例以执行手动转换。但我不能让ADO.NET使用这些encondings为我执行转换。

1 个答案:

答案 0 :(得分: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