Перенос данных MS Access в MySQL: проблемы кодировки символов - PullRequest
0 голосов
/ 07 октября 2009

У нас есть файл MS Access .mdb, созданный, я думаю, из базы данных Access 2000. Я пытаюсь экспортировать таблицу в SQL с помощью mdbtools, используя эту команду:

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

Это создает ожидаемый файл, за исключением одного: некоторые символы представлены в виде вопросительных знаков. Это: «Он не был готов» появляется так: «Он не был готов», только в некоторых случаях (в основном, в одинарных / двойных кавычках), где, возможно, содержимое было вставлено в БД из MS Word. В противном случае данные выглядят великолепно.

Я пробовал различные значения для "export MDB_ICONV =". Я попытался использовать iconv в результирующем файле, с ISO-8859-1 в from / to, с UTF-8 в from / to, с WINDOWS-1250 и WINDOWS-1252 и WINDOWS-1256 в from, в различные комбинации. Но мне не удалось вернуть эти фигурные цитаты.

Честно говоря, исходя из того, как выглядит получившийся файл, я подозреваю, что проблема либо в оригинальном файле .mdb, либо в mdbtools. Все уродливые символы - это отдельные знаки вопроса, но ясно, что они не являются уродливыми версиями одного и того же; так (моя интуиция говорит) в результирующем файле недостаточно данных; так (моя интуиция говорит), проблема не может быть исправлена ​​в получающемся файле.

Кто-нибудь сталкивался с этим раньше? Любые советы для продвижения вперед? FWIW, у меня нет и никогда не было MS Access - файл идет от третьей стороны - так что это может быть так же просто, как что-то изменить в базе данных, и я был бы очень рад это услышать.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 07 октября 2009

Похоже, что "умные цитаты" забрали еще одну жертву.

MS word берет простые ascii кавычки и переводит их в двухбайтовые символы левой и правой кавычек и переводит одну кавычку в двухбайтовый символ апострофа. Рассматриваемые двухбайтовые символы соответствуют кодовой странице MS, которая приблизительно совместима с unicode-16, за исключением символов глупых кавычек.

Существует perl-скрипт под названием 'demoroniser.pl', который отменяет всю эту малярию и преобразует кавычки обратно в обычный ASCII.

0 голосов
/ 07 октября 2009

Скорее всего, это связано с тем, что данные в файле Access имеют формат UTF, а MDB Tools пытается преобразовать их в ascii / latin / is0-8859-1 или в другую кодировку. Так как эти кодировки не отображают все символы UTF должным образом, вы получите вопросительные знаки. информация здесь может помочь вам решить проблемы с кодировкой, если MDB Tools будет использовать правильную кодировку.

...