Hallo Jörg!
Habe schon selbst eine Lösung gefunden.
$buffer =~s/%DF/ß/g;
$buffer =~s/%3A/:/g;
$buffer =~s/%FC/ü/g;
$buffer =~s/%E4/ä/g;
$buffer =~s/%F6/ö/g;
$buffer =~s/%D6/Ü/g;
$buffer =~s/%DC/Ä/g;
$buffer =~s/%C4/Ö/g;
Hast Du Dir schon 'mal überlegt, warum Du diesen Extra-Aufwand betreiben mußt? Wieso zum Beispiel ist ein 'ß' %DF und nicht %93? Der Grund ist sicherlich bei unterschiedlichen Zeichentabellen zu suchen. Kann man sich aber auch sicher sein, daß jeder Rechner zum versenden der Daten die gleiche Code-Tabelle nutzt?
Die hier gelieferten Codes entsprechen zumindest der ISO-Tabelle latin-1 (iso-8559-1). Wenn denn der Browser entsprechend eingestellt ist, oder die HTML-Seite eine entsprechende Code-Tabelle angibt, wird es wohl kaum Probleme geben.
Im Übrigen könntest Du Dein Script um ein Uni-Code Modul (z.B. Unicode::Map8) erweitern, welches die Fehlübersetzung Deiner ersten Variante korrigiert. Hier kannst Du dann auch ohne Probleme den Zielzeichensatz ändern ...
Jörk