Парсинг CSV файлов
В данной статье речь пойдет о распознавании формата CSV.
Что такое формат данных CSV, пояснять не буду, прочитайте об этом на http://ru.wikipedia.org/wiki/CSV.
И так, у меня был исходный файл в CSV формате, с кодировкой UTF-8, необходимо было его разобрать, для последующего заноса в базу данных.
Небольшой фрагмент этого файла
Имя;Фамилия;Мыло;Разное Максим;Нагайченко;max_nag[at]meta.ua;программист "?Мария";"üöäßµ";intik_79[at]mail.ru; ;;some@email.com
Как видно здесь встречаются кириллица, латиница, умляуты (расширенная латиница).
Для парсинг я воспользовался стандартной ф-цией PHP – fgetcsv.
При разборе на виндовс машине вообще никаких проблем не возникло, все было разобрано, разложено – в общем все как надо, осталось только занести в БД.
При разборе этого файла на линукс машине возникли проблемы – кириллица вообще не хотела распознаваться, если она не была обрамлена – кавычкой (»). Решение нашлось за 30 минут и выпитой чашкой чая.
Оказывается, необходимо указывать корректную локаль при работе с данной ф-цией, об этоя я прочитал в комментариях к указанной выше ф-ции.
setlocale(LC_ALL, 'ru_RU.UTF-8');
Если у вас в проекте используется несколько языков интерфейса, то при переключении, не забудьте переключить локаль. Особенно это важно, если для перевода интерфейса используется ф-ция gettext().
Всем удачи, Максим.
Статья просмотренна 3215 раз, зашло посетителей 921
Парсим csv и tsv файлы в delphi…
Читая иностранные блоги, наткнулся на пост, в котором поднимается проблема парсинга и отображения в TStringGrid tsv файлов (tab-separated values – значения, разделенные символом табуляции, англ.). В таких файлах элементы в строках разделены знако…