From b7920d18094bb96fb8b94736552bd76200916a77 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Thu, 15 Jul 2010 11:27:52 +0200 Subject: [PATCH] use encoding from .encoding.csv filename --- lib/MojoFacets/Import/CSV.pm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/MojoFacets/Import/CSV.pm b/lib/MojoFacets/Import/CSV.pm index d3fbb3b..9a3b45c 100644 --- a/lib/MojoFacets/Import/CSV.pm +++ b/lib/MojoFacets/Import/CSV.pm @@ -10,15 +10,20 @@ use Data::Dump qw(dump); use Encode; __PACKAGE__->attr('path'); -__PACKAGE__->attr('full_path'); +__PACKAGE__->attr('full_path'); # FIXME remove full_path sub data { my $self = shift; - my $path = $self->path; + my $path = $self->full_path || $self->path; - my $data = read_file $self->full_path, { binmode => ':raw' }; # FIXME configurable! - $data = decode('cp1250', $data); + my $data = read_file $path, { binmode => ':raw' }; # FIXME configurable! + my $encoding = 'utf-8'; + if ( $path =~ m/\.(\w+).csv/i ) { + $encoding = $1; + warn "decoding ", length($data), " bytes using $encoding\n"; + $data = decode($encoding, $data); + } my @lines = split(/\r?\n/, $data); $data = { items => [] }; @@ -30,6 +35,8 @@ sub data { $delimiter = qr/;/; } + warn "$path ", $#lines + 1, " lines encoding: $encoding delimiter:",dump($delimiter); + my $header_line = shift @lines; my @header = split( $delimiter, $header_line ); -- 2.20.1