UniCode per Javascript ersetzen

Zugriffe: 6385 starstarstarstarstarstarstarstarstarstar Bewertung:4 (4 Bewertungen) 28.01.2007

Im Rahmen meiner aktuellen Projektarbeit war wieder einmal auf der Suche nach einer Lösung für folgendes Problem:

Ich habe mir ein CustomControl geschrieben, das ein GridView lädt und hier dann entsprechend der übergebenen Datenquelle den entsprechenden Text an eine Textbox im Control übergibt.
Jetzt kommt es im deutsche Sprachraum immer wieder vor, daß "Sonderzeichen" wie ü, ä, ö usw. verwendet werden. (Vielleicht kommt ja noch die Reform der Reform und diese Zeichen werden im Wege der Globalisierung aus dem Schriftzeichensatz der deutschsprachigen Regionen gestrichen)

DDT1

Wie man sehen kann, zeigt das GridView das "ü" noch richtig an. Der gerenderte HTML-Code stellt das "ü" allerdings als Unicode das - also "ü". Im Ergebnis wird die so auch an die Textbox übergeben:

DDT2

Da mir ad hoc erst einmal keine Lösung für dieses Problem einfiel, kam mir der Gedanke, das Ganze an der Stelle zu lösen, wo der Inhalt an die Textbox übergeben wird. Also mußte eine Javascriptlösung her.

Die Aufgabenstellung war dabei bekannt: Es gibt eine Zeichenfolge, die eine oder mehrere Zeichenfolgen beinhaltet, die dem Muster "&#Zahl;" entspricht.

Die Lösung ist dann ein prototype für String().
 

String.prototype.fromDecCode = function(){
 var i = null;
 var _i = null;
 var temp = null;
 var str = this;
 myRegExp = new RegExp();
 i = str.indexOf('&#');
 if(i > -1){
 _i = str.indexOf(';');
 temp = str.substring(i+2, _i);
 myRegExp.compile(temp,'g');
 str = temp.replace(myRegExp, String.fromCharCode(temp));
 }
 return str;
 }

Damit war mein Problem gelöst.
Wie ich bei meiner Netzsuche feststellen mußte, hat sich in diversen Foren schon so manch anderer mit diesem Problem geplagt.

Update: 25.08.2007

Unicode - Codierungen für deutsche Umlaute

ä \u00c4
ä \u00e4
ö \u00d6
ö \u00f6
ü \u00dc
ü \u00fc
ß \u00df

Für die UniCode Convertierung ist die folgende Methode sehr hilfreich: String.prototype.fromUnicode

 


Neuen Kommentar verfassen

Bestätigungscode