Zeichensatzproblem?
am 04.12.2006 17:34:13 von a_nimbrecht
Hallo NG!
Ich habe einige CSV-Dateien zu bearbeiten und habe mir dafür
Tie::Handle::CSV aus dem CPAN herausgesucht. Bisher bin ich am
grundlegenden Herumexperimentieren:
In der Test-Datenbank stehen folgende Einträge:
"Datum";"Name";"Betrag"
04.12.06;"A. Säger";163,01
05.12.05;"Peter A. Mustermann";300,50
Ausgelesen wird das mit abgleich.pl:
#!/usr/bin/perl
use strict;
use warnings;
use Tie::Handle::CSV;
my $csv_fh = Tie::Handle::CSV->new('test.csv', header => 1, sep_char => ';')
my $first_line = <$csv_fh>;
print $first_line ."\n";
print $first_line->{'Betrag'} . "\n";
Das gibt aus:
04.12.06;"A. Säger";163,01
at abgleich.pl line 9
Exit code: 9
Ersetze ich nun den Namen "Säger" durch "Sager" oder entferne sonstwie
den Umlaut, kriege ich die Ausgabe, die ich haben will:
04.12.06;"A. Sager";163,01
163,01
Experimentiere ich weiter rum, gilt dasselbe: sobald ein dt. Umlaut
vorkommt, bricht das Script mit obiger, wie ich finde nicht sehr
aussagekräftigen, Fehlermeldung ab.
Was muss ich da tun?
Re: Zeichensatzproblem?
am 04.12.2006 22:18:02 von Slaven Rezic
"A. Nimbrecht" writes:
> Hallo NG!
>
> Ich habe einige CSV-Dateien zu bearbeiten und habe mir dafür
> Tie::Handle::CSV aus dem CPAN herausgesucht. Bisher bin ich am
> grundlegenden Herumexperimentieren:
>
> In der Test-Datenbank stehen folgende Einträge:
>
> "Datum";"Name";"Betrag"
> 04.12.06;"A. Säger";163,01
> 05.12.05;"Peter A. Mustermann";300,50
>
> Ausgelesen wird das mit abgleich.pl:
>
> #!/usr/bin/perl
> use strict;
> use warnings;
>
> use Tie::Handle::CSV;
>
> my $csv_fh = Tie::Handle::CSV->new('test.csv', header => 1, sep_char => ';')
>
> my $first_line = <$csv_fh>;
> print $first_line ."\n";
> print $first_line->{'Betrag'} . "\n";
>
>
> Das gibt aus:
>
> 04.12.06;"A. Säger";163,01
> at abgleich.pl line 9
> Exit code: 9
>
> Ersetze ich nun den Namen "Säger" durch "Sager" oder entferne sonstwie
> den Umlaut, kriege ich die Ausgabe, die ich haben will:
>
> 04.12.06;"A. Sager";163,01
> 163,01
>
> Experimentiere ich weiter rum, gilt dasselbe: sobald ein dt. Umlaut
> vorkommt, bricht das Script mit obiger, wie ich finde nicht sehr
> aussagekräftigen, Fehlermeldung ab.
>
> Was muss ich da tun?
Wenn Tie::Handle::CSV auf Text::CSV_XS basiert, dann musst du noch
binary=>1 oder so setzen. Genaueres liefert die Text::CSV-Manpage.
Gruß,
Slaven
--
Slaven Rezic - slaven rezic de
Tired of using file selectors? Real programmers use the TAB key for
completion and not for jumping around. Try
http://search.cpan.org/search?mode=module&query=Tk::PathEntr y
Re: Zeichensatzproblem?
am 05.12.2006 00:05:10 von a_nimbrecht
Slaven Rezic schrieb:
> Wenn Tie::Handle::CSV auf Text::CSV_XS basiert, dann musst du noch
> binary=>1 oder so setzen. Genaueres liefert die Text::CSV-Manpage.
Basiert drauf. Das schaue ich mir dann direkt mal morgen früh an. Danke.