0

我认为,我们有一个由 Access 2000 数据库生成的 MS Access .mdb 文件。我正在尝试使用以下命令使用 mdbtools 将表导出到 SQL:

mdb-export -S -X \\ -I orig.mdb Reviewer > Reviewer.sql

这会产生我期望的文件,除了一件事:一些字符表示为问号。这:“他还没准备好”显示如下:“他还没准备好”,仅在某些情况下(主要是单/双大引号),其中内容可能是从 MS Word 粘贴到数据库中的。否则,数据看起来很棒。

我尝试了“export MDB_ICONV=”的各种值。我尝试在结果文件上使用 iconv,在 from/to 中使用 ISO-8859-1,在 from/to 中使用 UTF-8,在 from/to 中使用 WINDOWS-1250 和 WINDOWS-1252 和 WINDOWS-1256各种组合。但我还没有成功地让那些弯引号回来。

坦率地说,根据生成的文件的外观,我怀疑问题出在原始 .mdb 文件中,或者在 mdbtools 中。畸形字符都是单个问号,但很明显它们不是同一事物的畸形版本;所以(我的直觉说)结果文件中没有足够的数据;所以(我的直觉说)这个问题无法在结果文件中解决。

有没有人遇到过这个?前进的任何提示?FWIW,我没有也从未有过 MS Access——该文件来自第 3 方——所以这可能就像更改数据库上的某些内容一样简单,我很高兴听到这个消息。

谢谢。

4

2 回答 2

2

看起来“聪明的报价”声称又一个受害者。

MS word 采用纯 ascii 引号并将它们转换为双字节左引号和右引号字符,并将单引号转换为双字节撇号字符。有问题的双字节字符属于 MS 代码页,除了愚蠢的引号字符外,它与 unicode-16 大致兼容。

有一个名为“demoroniser.pl”的 perl 脚本,它消除了所有这些恶意并将引号转换回纯 ASCII。

于 2009-10-07T01:28:48.787 回答
0

这很可能是因为 Access 文件中的数据是 UTF,而 MDB Tools 正在尝试将其转换为 ascii/latin/is0-8859-1 或其他一些编码。由于这些编码不能正确映射所有 UTF 字符,因此您最终会得到问号。此处的信息可以通过让 MDB 工具使用正确的编码来帮助您解决编码问题。

于 2009-10-07T01:29:04.370 回答