diff gwt-client/src/main/java/org/dive4elements/river/client/shared/MapUtils.java @ 6384:2987d81ea719

Further fix encoding handling in the print service - Strings are now html escaped additionaly to java encoding - Escaping / encoding moved into maputils - The legend url is urlencoded - Properties are no longer stored in an encoded manner but rather encoded on demand
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 21 Jun 2013 12:15:30 +0200
parents ea9eef426962
children 890f708b18d6
line wrap: on
line diff
--- a/gwt-client/src/main/java/org/dive4elements/river/client/shared/MapUtils.java	Fri Jun 21 11:42:35 2013 +0200
+++ b/gwt-client/src/main/java/org/dive4elements/river/client/shared/MapUtils.java	Fri Jun 21 12:15:30 2013 +0200
@@ -10,6 +10,8 @@
 
 import java.util.Date;
 
+import com.google.gwt.safehtml.shared.SafeHtmlUtils;
+
 
 public class MapUtils {
 
@@ -47,5 +49,29 @@
 
         return url;
     }
+
+    public static String toSaveHTMLJavaString(String str) {
+        return str == null ? null : SafeHtmlUtils.htmlEscape(toJavaEncodedString(str));
+    }
+
+    public static String toJavaEncodedString(String str) {
+        if (str == null) {
+            return null;
+        }
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0, len = str.length(); i < len; i++) {
+            int unipoint = Character.codePointAt(str, i);
+            if ((unipoint < 32) || (unipoint > 127)) {
+                sb.append("\\u");
+                sb.append(Integer.toHexString((unipoint >> 3*4) & 0xf));
+                sb.append(Integer.toHexString((unipoint >> 2*4) & 0xf));
+                sb.append(Integer.toHexString((unipoint >> 1*4) & 0xf));
+                sb.append(Integer.toHexString((unipoint >> 0*4) & 0xf));
+            } else {
+                sb.append(str.charAt(i));
+            }
+        }
+        return sb.toString();
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org