在查询DBF文件时,是否可以指定OLEDB应使用哪种字符编码?
可能的解决方法是在OLEDB调用DBF文件的字符编码之前对查询字符串进行编码,然后在返回它们时对所有结果进行编码。这可行,但如果OLEDB或ADO.NET可以为我做这件事会很好。
更新
Viktor Jevdokimov的suggestion似乎不会自动生效。但它让我调查了字符串的手动转换。可以使用CultureInfo的TextInfo属性来查找OemCodePage和WindowsCodePage,并使用它们来获取相应的Encoding实例以执行手动转换。但我不能让ADO.NET使用这些encondings为我执行转换。
答案 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