在查询DBF文件时,是否可以指定OLEDB应使用哪种字符编码?如何在查询DBF时指定OLEDB使用的字符编码?
可能的解决方法是在OLEDB调用DBF文件的字符编码之前对查询字符串进行编码,然后在返回时对所有结果进行编码。这将工作,但它会很好,如果OLEDB或ADO.NET可以为我做到这一点。
UPDATE
的suggestion维克托·Jevdokimov似乎并不自动工作。但它让我调查了字符串的手动转换。可以使用CultureInfo的TextInfo属性找出OemCodePage和WindowsCodePage,并使用它们获取相应的Encoding实例以执行手动转换。但是我无法让ADO.NET使用这些encondings来为我执行转换。
大概是因为ADO.NET是传输和编码转换属于其他地方,在那里发生转换,就像阅读器读取或写入作家或任何其他I/O。 – 2009-09-25 14:20:05
那么您的答案如何为我提供解决方案?我不明白:) – 2009-09-25 14:26:22
线程在你的应用程序级别。您在调用ADO.NET之前更改线程文化 - 这会将您的字符串转换为适用于ADO.NET的编码。您还原其他输入/输出的原始线程编码。你尝试过我的方法吗? – 2009-09-28 07:12:41