use warnings;
use strict;
+use Encode;
use IkiWiki 2.00;
sub import { #{{{
my @data;
if (lc $params{format} eq 'csv') {
- @data=split_csv($params{data}, $params{delimiter});
+ @data=split_csv($params{data},
+ defined $params{delimiter} ? $params{delimiter} : ",",);
}
elsif (lc $params{format} eq 'dsv') {
- @data=split_dsv($params{data}, $params{delimiter});
+ @data=split_dsv($params{data},
+ defined $params{delimiter} ? $params{delimiter} : "|",);
}
else {
return "[[table ".gettext("unknown data format")."]]";
eval q{use Text::CSV};
error($@) if $@;
my $csv = Text::CSV->new({
- sep_char => defined $delimiter ? $delimiter : ",",
+ sep_char => $delimiter,
binary => 1,
allow_loose_quotes => 1,
}) || error("could not create a Text::CSV object");
foreach my $line (@text_lines) {
$l++;
if ($csv->parse($line)) {
- push(@data, [ $csv->fields() ]);
+ push(@data, [ map { decode_utf8 $_ } $csv->fields() ]);
}
else {
debug(sprintf(gettext('parse fail at line %d: %s'),