| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > управление сложными структурами данных и utf8 |
| Автор: slavenk 1.7.2013, 15:31 | ||
| Здравствуете! Изучаю главу 6 "Управление сложными структурами данных" книги "Шварц Р., Фой Б., Феникс Т. - Perl. Изучаем глубже. 2-е издание". Столкнулся с такой проблемой: некорректно выводятся данные в кириллице (utf8). Нашел только костыль для Data::Dumper:
perl debugger (perl -d) и YAML некорректно показывает юникод. Подскажите пожайлуста, как решить данную проблему. |
| Автор: arto 1.7.2013, 16:02 |
| # perl -CSA -de0 DB<1> %h = ('a' => "Тест 1", 'b' => "Тест 2") DB<2> x \%h 0 HASH(0xac0db0) 'a' => 'Тест 1' 'b' => 'Тест 2' DB<3> или вы имеете ввиду что то иное? |
| Автор: slavenk 2.7.2013, 10:03 | ||
| Вот пример: ex_1.pl
Вывод отладки: perl -d ex_1.pl Loading DB routines from perl5db.pl version 1.37 Editor support available. Enter h or 'h h' for help, or 'man perldebug' for more help. main::(ex_1.pl:5): my $test = 'тест'; DB<1> s main::(ex_1.pl:6): say $test; DB<1> x $test 0 '\x{0442}\x{0435}\x{0441}\x{0442}' DB<2> |
| Автор: arto 2.7.2013, 11:17 |
| переопределите как вам надо main::dumpValue(): # perl -d t.pl main::(t.pl:5): my $test = 'тест'; DB<1> binmode $DB::OUT, ':utf8' if $DB::OUT; DB<2> sub main::dumpValue { print $DB::OUT join "\n", @{ $_[0] }; print $DB::OUT "\n" } DB<3> n main::(t.pl:6): say $test; DB<3> x $test тест |
| Автор: slavenk 2.7.2013, 14:59 |
| Спасибо большое, заработало. |