0

我有一个非常旧的 Big5 Jet 数据库,我想将其转换为 Unicode 和 SQLite。

这里的第一步是实际打开 jet 数据库。使用 C# ADO,我可以枚举 Jet DB 中的表。它们都是乱码,这是我在 Windows 7 en-US 上所期望的。

现在,如果我简单地将这些表名放入一个简单的

   select * from "[garbled text]"

jet 数据库抱怨它如何找不到表。同样,如果我尝试将 jet 数据库加载到 Microsoft Access 2010 中,它可以看到表但不能从中查询。

经过一段时间的努力,我决定启动数据库的原始主机 Windows XP zh-tw,它支持 Big5/Code Page 950。

我将完全相同的失败二进制文件从 Windows 7 zh-tw 扔到 Windows XP zh-tw 中。我运行exe并繁荣,它能够查询表没问题。

我真的很想能够在 Windows 7 上做到这一点,而且我也很想在不依赖宿主文化的情况下做到这一点。

我尝试过但失败的事情:

  • 将线程区域性更改为实例化 jet db 对象的线程的 zh-tw。
  • 在 ADO 源字符串上指定区域设置:

    Provider=Microsoft.Jet.OLEDB.4.0;Locale Identifier=950;
    

    jet 数据库也有自己的线程池,但我不知道如何访问这些线程来改变他们的文化。

我可以在 Windows 7 en-US 上从该数据库中查询表吗?

4

1 回答 1

0

在 Windows 7(任何语言)上,您可以更改系统区域设置:

  • 区域和语言 -> 管理 -> 更改系统区域设置 -> 中文(繁体,台湾) -> 好的,重启

我不知道如何在代码中更改 Jet/ADO.NET 语言环境,抱歉。

于 2012-07-02T08:21:05.007 回答