Почему я не могу правильно отображать китайские иероглифы в файле dbf?

Я пытаюсь импортировать данные из dbf в базу данных, и все в порядке, кроме столбца с китайскими иероглифами.

Однако проблема заключается не в процессе импорта, а в самом исходном файле. Я также слышал, что люди без проблем делают то же самое в Windows, потому что файл dbf правильно отображает китайские символы, но в OS X он просто показывает кучу странных символов.

Вот скриншот того, как это выглядит с TextEdit:

введите здесь описание изображения

Вот скриншот после импорта в базу данных MySQL:

введите здесь описание изображения

Буду признателен за любую помощь и мысли по этому поводу.


person Code Apprentice    schedule 30.10.2014    source источник


Ответы (2)


Правильно созданные файлы dbf имеют встроенное поле, содержащее кодировку полей символов. Текстовый редактор ничего об этом не знает. MySQL должен, а может и нет (я не пользователь MySQL, поэтому не знаю).

Предполагая, что dbf построен правильно, вы можете использовать программу экспорта dbf для создания текстового файла utf-8 с данными и импортировать его.

Если вы можете использовать Python, вы можете использовать мой модуль dbf, чтобы сделать это.

person Ethan Furman    schedule 30.10.2014

Итан прав - MySQL понятия не имеет, что символы, которые вы пытаетесь импортировать, китайские. Я думаю, что возможным решением является преобразование всех символов файла DBF в кодировку UTF-8 (которая является родной для MySQL), а затем экспортировать ее в базу данных MySQL.

Можно использовать редактор DBF Commander Pro. Откройте файл DBF, нажмите «Файл -> Преобразовать -> ANSI в UTF-8». Дополнительную информацию о процедуре преобразования можно найти здесь.

После преобразования попробуйте импортировать файл DBF в базу данных MySQL с помощью DBF Commander. Pro или с помощью инструмента, который вы использовали ранее.

Полнофункциональная 30-дневная пробная версия программы позволяет выполнить задание бесплатно.

person Oleg    schedule 25.05.2015