Программирование > Perl

Tie::CSV не работает с русским языком?

(1/1)

Moroz:
Доброго времени суток всем!

Не имею опыта работы с Perl.
Стоит такая задача: скачать прайс из инета в виде .xls и закачать его в PostgreSQL. Все это в Linux посредством скриптов shell и Perl.

Первую часть задачи решил. Прайс скачивается и из экселевого формата преобразуется в формат CSV в UTF8 кодировке.
Сейчас нужно произвести кое-какую обработку в с помощью Perl.
Использую модуль Tie::CSV (читает CSV файл в двумерный массив), но столкнулся с проблемой: Tie::CSV не хочет читать поля на русском языке. Поля на английском читает.

Кто может подсказать как решить эту проблему?

NeoNox:
cpan о существовании модуля Tie::CSV не подозревает, может Tie::Handle::CSV? Если да, чтите багрепорт и рекомендации
http://rt.cpan.org/Public/Bug/Display.html?id=27809

Moroz:
Извиняюсь за неточность. Да, это Tie::Handle::CSV.
Посмотрел Вашу ссылку. Там речь идет, насколько я понял, о коде окончания строки ^Z в досовских файлах. В качестве решения предлагается использовать парсер от Text::CSV_XS. Опробовал я этот метод - не работает.
Ищу дальше.

Moroz:
Нашел решение здесь
http://pavel.ammosov.ru/ruperl/ru-perl-faq-9.html

Отказался от использования Tie::Handle::CSV в пользу Text::CSV_XS.
Главное для работы с русскими буквами - конструктору new() передать параметр \'binary\'=>1.

Всем спасибо за внимание!

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии