PHP - CSV в MySQL для внешнего интерфейса и обратно в CSV, лучшие практики кодирования / строковых функций? - PullRequest
2 голосов
/ 06 апреля 2011

У меня есть сценарий, в котором файлы CSV используются для хранения данных (продуктов) в базе данных MySQL.По сути, клиент выполняет следующие действия для обслуживания продуктов:

  • Добавляет элементы в файл CSV в предварительно определенных столбцах
  • Загружает CSV в бэкэнд
  • PHPскрипт перебирает данные CSV
  • Данные проверяются / очищаются и отправляются в базу данных MySQL

То же самое применяется в обратном порядке, когда клиент редактирует, добавляет или удаляет элементы, однако это также можно сделатьпрямо с бэкэнда.У меня были проблемы с определенными символами, которые не отображаются должным образом в базе данных или в загруженной электронной таблице, поэтому мой вопрос:

Как правило, какой хороший набор кодирующих или строковых функций применяется к данным при добавлении ивосстановить его в виде файла CSV?Моя кодировка соединения MySQL - UTF-8, однако я попытался сохранить файл CSV с набором символов UTF-8, но, похоже, Excel автоматически применяет к нему кодировку Windows-1252 по умолчанию, ломая все символы ym UTF-8.

Приложения, такие как Open Office.org, запрашивают набор символов для импорта, а при установке на Unicode UTF-8 он отображается нормально.Очевидно, что нельзя полагаться на клиента, всегда использующего Excel или Open Office, так что же является хорошим решением для ПК / CSV> MySQL> для работы с ПК / CSV?

Все предложения приветствуются и приветствуются.

Simon

Ответы [ 2 ]

2 голосов
/ 06 апреля 2011

Так что отвечать после комментариев.Хорошо разберитесь в http://www.joelonsoftware.com/articles/Unicode.html и посмотрите на реализацию шаблона datamapper, пример статьи об этом здесь - http://www.devshed.com/c/a/PHP/Implementing-the-Data-Mapper-Design-Pattern-in-PHP-5.

0 голосов
/ 16 декабря 2014

Если я правильно понимаю, вы пытаетесь открывать, редактировать и сохранять файлы CSV с помощью Excel.Как правило, это плохая идея по целому ряду причин , включая тот факт, что она не позволяет указывать детали файла CSV, в который вы экспортируете.

Отказоустойчивостьтем не менее, более громоздким способом может быть загрузка данных в Access и работа с ними там.Access позволяет «экспортировать в текстовый файл» с использованием более сложных настроек, таких как кодировка и разделитель.

...