Digitalisierung und Umlaute

Uwe Raudszus uwe.raudszus at web.de
Tue Nov 21 13:56:11 EST 2006


Hallo,

ich versuche gerade die Möglichkeit zur Digitalisierung in unser Web-GIS einzubauen. Dabei bin ich auf das Problem gestoßen, dass Umlaute nich richtig übergeben werden.

Ich habe eine Lösung gefunden in der die mod_digitize_tab.php angepasst werden muss. Gibt es eine einfachere Lösung?

Meine Anpassung sieht folgendermaßen aus:

.....
1. Eine neue Funktion: (Kopiert von selfhtml)
function encode_utf8(rohtext) {
             // dient der Normalisierung des Zeilenumbruchs
             rohtext = rohtext.replace(/\r\n/g,"\n");
             var utftext = "";
             for(var n=0; n<rohtext.length; n++)
                 {
                 // ermitteln des Unicodes des  aktuellen Zeichens
                 var c=rohtext.charCodeAt(n);
                 // alle Zeichen von 0-127 => 1byte
                 if (c<128)
                     utftext += String.fromCharCode(c);
                 // alle Zeichen von 127 bis 2047 => 2byte
                 else if((c>127) && (c<2048)) {
                     utftext += String.fromCharCode((c>>6)|192);
                     utftext += String.fromCharCode((c&63)|128);}
                 // alle Zeichen von 2048 bis 66536 => 3byte
                 else {
                     utftext += String.fromCharCode((c>>12)|224);
                     utftext += String.fromCharCode(((c>>6)&63)|128);
                     utftext += String.fromCharCode((c&63)|128);}
                 }
             return utftext;
}
 
2. Diese wird dann in Save und Update genutzt:

//
// ---------------------------------------- SAVE -------------------------------------------------
//
      if (type == "save") {
          str += '<wfs:Insert><'+ myconf['featuretype_name']+'>';
          for(var i=0; i<d.get(m).e.count(); i++){
               if(d.get(m).e.getValue(i) != ""){
		var tmp = d.get(m).e.getName(i);
		str += '<' + tmp  + '>' + encode_utf8(d.get(m).e.getValue(i)) + '</' + tmp  + '>';
               }
          }

....

//
// --------------------------------------- UPDATE ------------------------------------------------
//
else if (type == "update") {
	str += '<wfs:Update typeName="'+ myconf['featuretype_name']+'">';
	for(var i=0; i<d.get(m).e.count(); i++){
		if(d.get(m).e.getValue(i) != ""){
			str += '<wfs:Property>';
			str += '<wfs:Name>'+d.get(m).e.getName(i)+'</wfs:Name>';
			str += '<wfs:Value>'+encode_utf8(d.get(m).e.getValue(i))+'</wfs:Value>';
			str += '</wfs:Property>';
		}
	}
....

Mit freundlichen Grüßen
Uwe Raudszus





More information about the Mapbender_users mailing list