[Mapbender-commits] r4659 - in trunk/mapbender/http: classes php
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Fri Sep 18 07:03:08 EDT 2009
Author: tbaschetti
Date: 2009-09-18 07:03:07 -0400 (Fri, 18 Sep 2009)
New Revision: 4659
Modified:
trunk/mapbender/http/classes/class_json.php
trunk/mapbender/http/php/mod_addWMSfromfilteredList_server.php
Log:
added json->save_encode (converting to UTF-8 before encoding)
fixes http://trac.osgeo.org/mapbender/ticket/171
Modified: trunk/mapbender/http/classes/class_json.php
===================================================================
--- trunk/mapbender/http/classes/class_json.php 2009-09-18 10:57:29 UTC (rev 4658)
+++ trunk/mapbender/http/classes/class_json.php 2009-09-18 11:03:07 UTC (rev 4659)
@@ -60,6 +60,39 @@
}
/**
+ * Converts incoming object to UTF-8 for json_encode
+ *
+ */
+
+ private function json_fix_charset($var)
+ {
+ if (is_array($var)) {
+ $new = array();
+ foreach ($var as $k => $v) {
+ $new[$this->json_fix_charset($k)] = $this->json_fix_charset($v);
+ }
+ $var = $new;
+ } elseif (is_object($var)) {
+ $vars = get_object_vars(get_class($var));
+ foreach ($vars as $m => $v) {
+ $var->$m = $this->json_fix_charset($v);
+ }
+ } elseif (is_string($var)) {
+ $var = utf8_encode($var);
+ }
+ return $var;
+ }
+
+ /**
+ * savely encode object to JSON,
+ * converting to UTF-8
+ */
+ public function save_encode($anObject){
+ $e = new mb_notice("converting to UTF-8 before using native JSON");
+ return $this->encode($this->json_fix_charset($anObject));
+ }
+
+ /**
* Encodes an object to JSON
*/
public function encode($anObject) {
Modified: trunk/mapbender/http/php/mod_addWMSfromfilteredList_server.php
===================================================================
--- trunk/mapbender/http/php/mod_addWMSfromfilteredList_server.php 2009-09-18 10:57:29 UTC (rev 4658)
+++ trunk/mapbender/http/php/mod_addWMSfromfilteredList_server.php 2009-09-18 11:03:07 UTC (rev 4659)
@@ -132,6 +132,6 @@
}
$json = new Mapbender_JSON();
-$output = $json->encode($resultObj);
+$output = $json->save_encode($resultObj);
echo $output;
-?>
\ No newline at end of file
+?>
More information about the Mapbender_commits
mailing list