Forum Webscript.Ru
Программирование => Perl => Тема начата: green_forest от 29 Октября 2004, 02:36:14
-
Использую весию модуля 2.11, пробовал также 0.43
Perl 5.8.4, Linux, KOI8-R
Создаю файл, пишу по-ангийски - все ок.
По-русски - козябрики.
Где рыть? Очень надо однако...
-
В дистрибутиве есть примеры:
ParseExcel: sample/dmpExU.pl
WriteExcel: examples/unicode_cp1251.pl
-
Спасибо за ответ.
Из доки:
...
unicode_cp1251.pl Russian: CP1251 to utf8 in perl 5.8.
...
Как я понял, пример про преобразование CP1251->UTF8
Или нет?
А по-другому никак? Только преобразовав строку в UTF8?
У меня пока нет полной поддержки UTF8.
-
green_forest:
У меня пока нет полной поддержки UTF8.
У тебя и не нужно, достаточно того что у Perl есть.
perldoc encoding
-
green_forest
Вообще я бы рекомендовал вернуться на версию 0.43, в ней с кириллицей работать гораздо проще...
А так в версиях 2.х - одна вещь, из-за которой до сих пор пользуюсь 0.43 - невозможность создания листов с русскими названиями...
-
Сори, объясните, а то туплю...
--Делаю
use encoding "koi8-u";
my $workbook = Spreadsheet::WriteExcel->new("test.xls");
my $worksheet = $workbook->add_worksheet("My list");
$worksheet->write(\'A1\', "Пользователь");
$workbook->close;
--В ответ
Wide character in print at /usr/lib/perl5/vendor_perl/5.8.4/Spreadsheet/WriteExcel/Workbook.pm line 205.
-
Дай мне строку 205 из /usr/lib/perl5/vendor_perl/5.8.4/Spreadsheet/WriteExcel/Workbook.pm
-
green_forest
Объясняю:
Читаем мануал модуля 2.11, по сравнению с 0.43 много изменений методов:
http://search.cpan.org/~jmcnamara/Spreadsheet-WriteExcel-2.11/lib/Spreadsheet/WriteExcel.pm
в части write_unicode
-
Workbook.pm
...
print {$self->{_filehandle}} $data;
...
-
Спасибо, ребята, что натолкнули меня на правильное решение!
$worksheet->write_unicode(\'A1\', $map->to_unicode(koitowin("Пользователь")));
koitowin - koi8->cp1251
Нашел только карту к CP1251, посему двойная перекодировка.