[Mapbender-users] Codierung fuer mb_myPOI

"Jäger, Frank (KRZ)" F.Jaeger at KRZ.DE
Mon Dec 8 08:07:26 EST 2008


Hallo Mapbender-Entwickler und PHP-Profis,
ich möchte mit PHP aus einer Datenbank einen POI-Link zum Mapbender generieren.

Der "label" des Parameters "mb_myPOI" kann auch Umlaute enthalten.

Ich habe festgestellt, dass es nicht reicht, die Umlaute mit der PHP-Funktion 'urlencode()' zu behandeln.
Obwohl Webserver und Datenbank in iso/Latin1 betrieben werden, müssen die Umlaute offensichtlich UTF-8-codiert werden.

Dies Provisorium funktioniert:

	$_uml = array('ä', 'ü', 'ö', 'Ä', 'Ü', 'Ö', 'ß', ' ');
	$_utf = array('%C3%A4', '%C3%BC', '%C3%B6', '%C3%84', '%C3%9C', '%C3%96', '%C3%9F', '+');
	$utflabel = str_replace( $_uml, $_utf, $label );
	
Aber das muss doch 'eleganter' gehen, oder?

Warum reichen eigentlich nicht die mit urlencode erzeugten Codes (ö = %F6 , ü = %FC) sondern nur (ö = %C3%B6 , ü = %C3%BC)?


Beispiele:

Mit Meeting-Point generiert (UTF-8):
http://map.krz.de/mapwww/frames/login.php?name=treff&password=treff&mb_user_myGui=Treff&mb_myPOI2SCALE=3494318,5765521,5000&mb_myPOI=Umlaute+%C3%84%C3%9C%C3%96%C3%A4%C3%BC%C3%B6|3494318|5765521

Aus PHP urlencode() (ISO):
http://map.krz.de/mapwww/frames/login.php?name=treff&password=treff&mb_user_myGui=Treff&mb_myPOI2SCALE=3494318,5765521,5000&mb_myPOI=Umlaute+%C4%DC%D6%E4%FC%F6|3494318|5765521

Ganz *ohne* Maskierung der Umlaute:
http://map.krz.de/mapwww/frames/login.php?name=treff&password=treff&mb_user_myGui=Treff&mb_myPOI2SCALE=3494318,5765521,5000&mb_myPOI=Umlaute+ÄÜÖäüö|3494318|5765521
(Funktioniert mit Firefox, nicht mit IE)



Mit freundlichen Grüßen
Frank Jäger


More information about the Mapbender_users mailing list