Thomas s: Umlaute ersetzen

Beitrag lesen

Hallo,

ich habe mir folgende Funktion gestrickt:

function replaceUmlaute(curText) {
 if (typeof curText != "number" && typeof curText != "string" ) {
  alert("Sie versuchen Text auszugeben, der kein Text ist sondern: "+typeof curText);
  return "err";
 }
 if (curText == "") return "";
 if (typeof curText == "number") curText = String(curText);
 var result = curText;
 result=result.replace(/\u00fc/g, "ü");
 result=result.replace(/\u00f6/g, "ö");
 result=result.replace(/\u00e4/g, "ä");
 result=result.replace(/\u00dc/g, "Ü");
 result=result.replace(/\u00d6/g, "Ö");
 result=result.replace(/\u00c4/g, "Ä");
 result=result.replace(/\u00df/g, "ß");
 result=result.replace(/ü/g, "ü");
 result=result.replace(/ö/g, "ö");
 result=result.replace(/ä/g, "ä");
 result=result.replace(/Ü/g, "Ü");
 result=result.replace(/Ö/g, "Ö");
 result=result.replace(/Ä/g, "Ä");
 result=result.replace(/ß/g, "ß");
 return result;
}

Nachdem in der Funktion geprüft wurde, ob auch ein String vorliegt, sollen Umlaute umdefiniert werden. Das funktioniert auch alles prima NUR im Safari nicht. Benutze ich die Funktion dort, so liefert er mir für "Übertragen" nicht "Übertragen" sondern "†bertragen".

Woran liegts? Denn eigentlich dachte ich, dass die Funktion prima ist (vielleicht komliziert und langsam, aber funktionsfähig.

Unter FF und IE, alles auf MacOSX geht es. Selbst Opera hat kein Problem.