1 2 3 4 5
open(my $fh,'<',"$datei"); binmode($fh,':utf8'); local $/ = "\n"; my $content = <$fh>; ...
QuoteAbhilfe schafft es, den String vorher mit Encode::encode oder einem entsprechenden Output-Layer zu kodieren.
1 2 3 4
open(my $fh,'<',"$datei"); binmode($fh,':utf8'); local $/ = "\n"; my @log = encode('ISO-8859-1',<$fh>);
2015-04-26T09:25:49 biancaFrage: Wie kann ich feststellen, welche(s) Zeichen in der Datei konkret zu dieser Fehlermeldung führt/führen?
1 2 3 4 5 6 7
my $max = 0; my $min = 9999; foreach my $char (split //,$content) { my $ord = ord($char); $max = $ord if $ord > $max; $min = $ord if $ord < $min; }
1 2 3 4 5 6 7 8 9 10 11
#!/usr/bin/perl use strict; use warnings; my $datei = 't.txt'; open(my $fh,'<',"$datei"); binmode($fh,':utf8'); local $/ = "\n"; my $content = <$fh>; print $content;
Ä
2015-04-27T06:46:57 GwenDragonund Textdatei t.txt (Windows-ANSI-kodiert) mit Ä
2015-04-27T06:46:57 GwenDragonWas hast du genau vor mit deinem Programm?
2015-04-27T06:46:57 GwenDragonWarum binmode mit Encoding?
2015-04-27T06:46:57 GwenDragonWelche Quellkodierung hat denn deine Datei?
2015-04-27T10:53:56 GwenDragonMit ':utf8' wird aber nur ein Flag gesetzt, dass es UTF ist, während ':encoding(UTF-8)' es auch prüft.
2015-04-27T10:53:56 GwenDragonGanz interessant dazu: http://stackoverflow.com/questions/627661/how-can-...
2015-04-27T15:33:57 hlubenowdieses:
Code (perl): (dl )binmode($fh,':encoding(Unicode)');
1 2 3
use Text::Iconv 1.7; my $converter = Text::Iconv->new('CP850','ISO-8859-15'); $content = $converter->convert($content);
2015-04-29T16:32:11 rosti... ich hatte einen Schlaganfall ...
2015-04-29T16:32:11 rosti(War lange nicht hier, ich hatte einen Schlaganfall, das Schreiben fällt mir schwer).