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; }