2

我最近获得了大量存储在 Visual FoxPro 9.0 数据库中的数据。我需要的文本是西里尔文(俄语),但在 1000 个 .dbf 文件(包括 .fpt 和 .cdx 文件)中,只有 4 或 5 个返回可读文本。其余的(通常以备忘录的形式)返回如下内容:

??9Y?u? yL??x??itZ?????zv?|7?g?̚?繠X6?~u?ꢴe} ?aL1? Ş6U?|wL(Wz???8???7?@R?.FAc?TY?H???#f U???K???F&?w3A??hEڅԦX?MiOK?,?AZ&GtT? ?u??r:?q???%,NCGo0??H?5d??]?????O{??z|??\??pq???,??om???K *???lb?5?D?J+z!?? ?G>j=???N ?H?jѺAs`c?HK\i ??9a*q??

对于我的生活,我无法弄清楚这是如何编码的。我尝试过各种在线解码器,在很多数据库程序中打开了.dbfs,并使用Python打开和操作它们。它们都返回与上述类似的混乱,但永远无法阅读俄语。

注意:我知道这些数据库没有损坏,因为它们附带了可以成功打开、查询和读取它们的企业软件。但是,该软件不会导出数据,所以我直接使用 .dbfs。

很高兴分享一个示例 .dbf 如果有助于深入了解这一点。

4

3 回答 3

2

“?” 字符不传达太多。尝试以十六进制形式查看备注字段的内容,并查看您所看到的内容是否与任何编码中的文本相似。(抱歉,如果您已经使用 Python 尝试过此操作)。当然,如果它实际上是加密的,除非你能找到密钥和方法,否则你可能会不走运。

于 2013-06-27T15:04:26.997 回答
2

有两种可能:

  • 编码未正确存储在 dbf 文件中

  • dbf 文件已加密

如果它已被加密,我无法帮助你。如果是找到正确编码的问题,我的 dbf 包可能有用。如果您遇到困难,请随时向我发送示例 dbf 文件。

于 2013-06-26T15:03:04.740 回答
2

如果是FoxPro数据库,我希望那里的俄语以某种预 Unicode 编码对俄语进行编码,就像古代大多数东欧语言一样。

例如:Windows-1251ISO 8859-5

于 2013-06-26T14:33:08.523 回答