将MS Access数据迁移到MySQL:字符编码问题

时间:2009-10-07 01:15:29

标签: ms-access data-migration mdbtools

我认为,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,使用WINDOWS-1250和WINDOWS-1252以及WINDOWS-1256各种组合。但我没有成功地获得那些卷曲的报价。

坦率地说,基于生成的文件的外观,我怀疑问题出在原始的.mdb文件中,或者在mdbtools中。格式错误的字符都是单个问号,但很明显它们不是同一个问题的格式错误;所以(我的直觉说)结果文件中没有足够的数据;所以(我的直觉说)问题无法在生成的文件中修复。

有没有人遇到过这个?前进的任何提示? FWIW,我没有,也没有MS Access - 文件来自第三方 - 所以这可能就像更改数据库中的内容一样简单,我很乐意听到。

感谢。

2 个答案:

答案 0 :(得分:2)

看起来“聪明的报价”已经声称还有另一个受害者。

MS word采用简单的ascii引号,并将它们转换为双字节左引号和右引号字符,并将单引号转换为双字节撇号字符。有问题的双字节字符流行到MS代码页,除了愚蠢的引号字符外,它与unicode-16大致相同。

有一个名为'demoroniser.pl'的perl脚本撤消所有这些malarky并将引号转换回纯ASCII。

答案 1 :(得分:0)

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