【发布时间】:2010-12-01 08:11:35
【问题描述】:
是否可以指定 OLEDB 在查询 DBF 文件时应使用哪种字符编码?
一种可能的解决方法是在 OLEDB 调用 DBF 文件的字符编码之前对查询字符串进行编码,然后在返回所有结果时对其进行编码。这会起作用,但如果 OLEDB 或可能的 ADO.NET 能为我做到这一点,那就太好了。
更新
Viktor Jevdokimov 的suggestion 似乎无法自动工作。但这让我调查了字符串的手动转换。可以使用 CultureInfo 的 TextInfo 属性找出 OemCodePage 和 WindowsCodePage 并使用它们来获取相应的 Encoding 实例进行手动转换。但我无法让 ADO.NET 使用这些编码为我执行转换。
【问题讨论】:
-
可能是因为 ADO.NET 是一种传输,编码转换属于其他地方,发生转换的地方,例如使用 Reader 读取或使用 Writer 或任何其他 I/O 写入。
-
那么您的回答如何为我提供解决方案?我不明白:)
-
线程在您的应用级别。在调用 ADO.NET 之前更改线程区域性 - 这会将您的字符串转换为与 ADO.NET 之间的适当编码。您为其他输入/输出恢复原始线程编码。你试过我的方法了吗?
标签: .net ado.net character-encoding oledb dbf