Problem mit Umlaut / UTF-Decode

Kopfballstar

Erfahrenes Mitglied
Hallo,

mal wieder ein Problem ;-)

Ich selektiere Daten aus einer DB, jage sie durch einen Charset Converter und gebe Sie auf der Page aus. Der Header ist auf utf-8 gesetzt und es funktioniert alles wirklich einwandfrei.

Allerdings tritt ein problem auf wenn Ajax zum Einsatz kommt. Wenn Daten über innerHTML nach einem Ajax Transfer aktualisiert werden gibt es kein Problem => 'Stück' bleibt 'Stück'

Wenn ich allerdings den Inhalt eines <input> Feldes aktualisiere, dann wird
'Stück' => 'Stück'


Kann mir jemand weiterhelfen?
 
Da müsstest du den String wohl wieder in seine Ursprungsform umwandeln, denn den Charset-Konverter kannst du dort nicht gebrauchen(zumindest nicht den Teil, der Sonderzeichen in htmlentities umwandelt).

Falls du keines der einschlägigen Frameworks nutzt(die haben die entsprechenden Methoden idR. eingebaut), kannst du das String-Objekt selbst um die passende Methode erweitern:
Code:
String.prototype.unescapeHTML=function()
{
  dummie=document.createElement('span');
  dummie.innerHTML=this;
  return dummie.firstChild.data;
}

document.getElementById("newUnit").value = String(result.property.price_div_unit).unescapeHTML();
 
Hallo und Danke,

habe es mal eben eingebaut und bisher scheint es tadellos zu funktionieren.
Meine auch den Sinn dahinter zu verstehen.
Habe aber mal ne Frage zur Funktionsdeklaration.
String.prototype ? Kannst du mir genauer erläutern was das genau bedeutet? Soll da auf die String Funktion aus dem prototype Framework zugegriffen werden? Wenn ja, könnte es eigentlich gar nicht bei mir funktionieren weil wir kein prototype benutzen.
 
Nö, das hat nichts mit dem Framework zu tun, eher umgekehrt.
prototype ist ein JS-Sprachbestandteil, der es ermöglicht, Objekte zu erweitern....auch Objekte, die zum JS-Sprachumfang gehören.

Das "String" bezieht sich in meinem Beispiel auf das JS-interne String-Objekt...welches ich um die Methode unescapeHTML erweitere...man kann diese Methode dann genau wie andere String-Methoden verwenden.
 

Neue Beiträge

Zurück