无法读取Visual FoxPro DBF文件中的编码文本

时间:2013-06-26 14:23:26

标签: python decode dbf visual-foxpro

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

?? 9Y?U&          基?? X ?? ITZ ????? ZV |??????7克̚繠X6〜Uꢴe} ?AL1? S6U |?WL(WZ ??? ??? 8 7 @R?                         .FAc?TY?H ???#f U ??? K ??? F&?w3A ??hEڅڅX?MiOK?,?AZ& GtT ?? u ?? r:?q ???%,NCGo0? 6 H 4 5d中??] ????? -O {??                                ž|?????!?? \ ?? PQݑ,?? ??? OM K * ???磅5 d J +ž?                                                                      ?G> j = ??? N?H?jѺAs`c?HK \ i ?? 9A * Q 20

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

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

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

3 个答案:

答案 0 :(得分:2)

我希望如果它是 FoxPro 数据库,那么俄语就像俄语中的大多数东欧语言一样用俄语的一些Unicode编码编码。

例如:Windows-1251ISO 8859-5

答案 1 :(得分:2)

有两种可能性:

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

  • dbf文件已加密

如果它已加密,我无法帮助你。如果要找到正确的编码,my dbf package可能会有用。如果你遇到困难,请随时给我发一个示例dbf文件。

答案 2 :(得分:2)

'?'人物不会传达太多东西。尝试将备注字段的内容视为十六进制,并查看您所看到的内容是否与任何编码中的文本类似。 (如果你已经尝试过使用Python,请道歉)。当然,如果它实际上是加密的,你可能会失去运气,除非你能找到关键和方法。