[Mapbender-dev] [Fwd: [Mapbender-users] Digitalisierung und Umlaute]

Christoph Baudson christoph.baudson at ccgis.de
Wed Nov 22 04:26:04 EST 2006


Hallo Uwe,

thanks for your mail. Instead of encoding in the JS part you might want 
try to change the code in "extensions/geom2wfst.php":

danke für Deinen Beitrag. Anstatt die Kodierung in JavaScript 
vorzunehmen könnte ich mir auch vorstellen, das erst auf dem Server in 
der Datei "extensions/geom2wfst.php" vorzunehmen.

Line 39
$data = stripslashes($_REQUEST["filter"]);

change to / ändern in
$data = utf8_encode(stripslashes($_REQUEST["filter"]));

Wenn das funktioniert wäre das etwas einfacher, da man keine neue 
Funktion bräuchte.

If this would work it would be simpler, because you wouldn't need the JS 
function

Gruß

Christoph


Uli Rothstein schrieb:
> 
> 
> -------- Original-Nachricht --------
> Betreff: [Mapbender-users] Digitalisierung und Umlaute
> Datum: Tue, 21 Nov 2006 15:53:25 +0100
> Von: uwe.raudszus at email.de
> Antwort an: users at mapbender.osgeo.org
> Organisation: http://freemail.web.de/
> An: users at mapbender.osgeo.org
> 
> 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
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe at mapbender.osgeo.org
> For additional commands, e-mail: users-help at mapbender.osgeo.org
> 
> 





More information about the Mapbender_dev mailing list