Thread Problem mit Sonderzeichen für Dateinamen
(13 answers)
Opened by jan99 at 2015-09-03 10:30
Moin!
jetzt sollen Dateien angelegt werden und die deutschen Umlaute werden nicht richtig dargestellt. Aus einer UTF8 ohne Bom stammt ein Wort mit "Ü". Diese Datei wird mit wie folgt eingelesen: Code (perl): (dl
)
open( my $fh_group, '<:encoding(utf8)', $config{group_file} ) or die( "$config{group_file}: $!" ); Dann soll die Datei angelegt werden: Code (perl): (dl
)
open(my $fh_html, ">:encoding(UTF-8)", DeutscheUmlaute($cuix_report)) or die ("Can't open csv-file: ".$cuix_report." ($!)\n"); und für die Umlautkonvertierung habe ich eine andere Funktion umgebaut: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 sub DeutscheUmlaute { my $str=shift; $str=Encode::decode('utf8', $str); #JACQUES geändert # already quoted transform to ignore $str=~s/&(#?\w+);/-!=$1=!-/gs; # known quotes $str=~s/ä/ae/g; $str=~s/ö/oe/g; $str=~s/ü/ue/g; $str=~s/Ä/ae/g; $str=~s/Ö/Oe/g; $str=~s/Ü/Ue/g; # quote unknown non ascii $str=~s/([^\x20-\x7F])/'&#'.ord($1).';'/gse; # transorm back already quoted $str=~s/-!=(#?\w+)=!-/&$1;/gs; return $str; } Aber im Dateinamen ist statt des "Ü" jetzt ein "�" Kann mir einer sagen was ich da durcheinander gebracht habe oder wie ich es besser hätte gemacht ? Gruß Jan perl-Greenhorn - Win7 64bit / strawberry (ehem. activeperl) - www.OpenStreetMap.de
|