Thread Text::Table::Tiny
(18 answers)
Opened by geloescht at 2012-09-20 18:20
kann sein, dass es die berechnung nicht richtig macht, weil du utf8-daten hast, die aber nicht dekodiert sind? das würde es erklären. ein ö wird dann als 2 bytes gezählt, obwohl es nur 1 character ist.
decodiere die daten mittels Encode::decode_utf8 (oder setze das attribut mysql_enable_utf8 beim connect). dann speicherst du die ausgabe vom modul in einen string und machst encode_utf8 und gibst ihn aus. alternativ machst du binmode STDOUT, ":encoding(utf-8)" vor der ausgabe. edit: also: Code (perl): (dl
)
1 2 3 4 5 6 my $dbh = DBI->connect($dsn, $user, $pass, { mysql_enable_utf8 => 1 }); ... push @$rows, [@row]; ... binmode STDOUT, ":encoding(utf-8)"; print Text::Table::Tiny::table(rows => $rows, header_row => 1); Last edited: 2012-09-20 22:40:26 +0200 (CEST) Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |