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:
open( my $fh_group, '<:encoding(utf8)', $config{group_file} ) or die( "$config{group_file}: $!" );
Dann soll die Datei angelegt werden:
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:
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);
$str=~s/&(#?\w+);/-!=$1=!-/gs;
$str=~s/ä/ae/g;
$str=~s/ö/oe/g;
$str=~s/ü/ue/g;
$str=~s/Ä/ae/g;
$str=~s/Ö/Oe/g;
$str=~s/Ü/Ue/g;
$str=~s/([^\x20-\x7F])/'&#'.ord($1).';'/gse;
$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