Thread CSV-Datei mit Perl erstellen (12 answers)
Opened by pktm at 2009-12-07 11:42

pktm
 2009-12-07 13:08
#129051 #129051
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Soweit ich das sehe, kommen die Daten in utf-8 aus der Datenbank.

Ich habe im Test-Skript ein seltsames Verhalten.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Encode qw(decode);
use Class::CSV;

my $csv = Class::CSV->new(
filename => 'test.csv',
fields => [qw/item qty/],
);

t1($csv);
t2($csv);

$csv->print();

sub t1 {
my $csv = shift;
$csv->add_line({
item => "ütem",
qty => '2'
});
}

sub t2 {
my $csv = shift;
$csv->add_line({
item => decode('UTF-8', "ütem"),
qty => '2'
});
}


Wenn ich das so aufrufe, gibt es folgende Ausgabe:
Quote
Wide character in print at /Library/Perl/5.8.8/Class/CSV.pm line 443.
ütem,2
�tem,2


Mal davn abgesehen, dass ich noch nicht weiß, warum der "Wide character in print"-Fehler kommt, ist das erste ü korrekt, das zweite jedoch nicht. Nicht korrekt i.d.S. dass da kein ü steht.

Wenn ich den Aufruf von t2 auskommentiere, wird das ü auch nicht korrekt ausgegeben:
Quote
¸tem,2


Einzig t2 alleine (t1 auskommentiert) bleibt konsistent:
Quote
Wide character in print at /Library/Perl/5.8.8/Class/CSV.pm line 443.
�tem,2


Mache ich irgend etwas ganz falsch?
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread CSV-Datei mit Perl erstellen