![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| Muzer |
|
|||
|
Unregistered |
Есть excel файл, в нём текст на 5ти языках (русский, английский, польский, чешский, словакский).
Для справки: языки кроме русского и английского содержат символы с диакритиками (всякие чёрточки над/под буквами), поэтому в основном работа ведётся в UTF-8. Задача: через perl-скрипт получить данные из excel, вывести на вёб страницу в utf-8. Использую Spreadsheet::ParseExcel. Чётко по мануалу. Достигнутые результаты: 1) если использовать Spreadsheet::ParseExcel::FmtUnicode и в качестве карты использовать cp1251, затем по средствам Text::Iconv конвертировать значения полей в UTF8, то получаем русский текст (остальной ессно без диакритик). 2) если не использовать Spreadsheet::ParseExcel::FmtUnicode, брать полученные значения полей и далее $value = Encode::encode('utf8', $value); , то а) русский текст представляет что-то типа такого "5@A>=0;L=K9 8G=>9 @C??K" б) текст на остальных языках отображается на 80% корректно, т.е. некот. символы с диакритиками отображаются верно, некоторые заменяются квадратиками. Вопрос: как же всё-таки прочитать все символы корректно (пусть даже за неск.проходов)? Или хотя бы в какой кодировке возвращаются значения из excel по умолчанию? Перебрал дофига вариантов, пробовал конвертить с помощью Text::Iconv из большинства известных кодировок, результатов - никаких. Пробовал подобрать для Spreadsheet::ParseExcel::FmtUnicode карту, которая бы сохраняла диакритики, а потом из неё конвертить в utf, но таких тоже не нашёл. Благодарю за внимание. |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 6 Всего: 61 |
Если это возможно, то кинь на мыло [email protected] хотябы часть файла Excel, с такими символами и структурой как в оригинальном файле. Может стоит попробовать переконвертировать из Excel в XML с помощью модуля XML::Excel, а потом просто парсить xml'ку?
Это сообщение отредактировал(а) korob2001 - 11.2.2005, 03:46 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 3 Всего: 44 |
||||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |