Added URL decoding for json file paths.

Change-Id: I8361696a090f106662beaf14af61f1b073fdfad5
diff --git a/src/main/java/de/ids_mannheim/korap/util/KrillString.java b/src/main/java/de/ids_mannheim/korap/util/KrillString.java
index 602709b..d3da39d 100644
--- a/src/main/java/de/ids_mannheim/korap/util/KrillString.java
+++ b/src/main/java/de/ids_mannheim/korap/util/KrillString.java
@@ -1,7 +1,9 @@
 package de.ids_mannheim.korap.util;
 
 import java.io.*;
+import java.net.URLDecoder;
 import java.nio.file.Files;
+import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
@@ -26,7 +28,10 @@
      */
     public static String StringfromFile (String path, Charset encoding)
             throws IOException {
-        byte[] encoded = Files.readAllBytes(Paths.get(path));
+        path = URLDecoder.decode(path,"UTF-8");
+        path = path.replaceFirst("^/(.:/)", "$1");
+        Path p = Paths.get(path);
+        byte[] encoded = Files.readAllBytes(p);
         return new String(encoded, encoding);
     };
 
diff --git a/src/test/java/de/ids_mannheim/korap/TestSimple.java b/src/test/java/de/ids_mannheim/korap/TestSimple.java
index 17179aa..6451ae4 100644
--- a/src/test/java/de/ids_mannheim/korap/TestSimple.java
+++ b/src/test/java/de/ids_mannheim/korap/TestSimple.java
@@ -2,6 +2,7 @@
 
 import java.util.*;
 import java.io.*;
+import java.net.URLDecoder;
 
 import static org.junit.Assert.*;
 
@@ -95,7 +96,7 @@
         SpanQueryWrapper sqwi;
 
         try {
-            String json = getString(jsonFile);
+            String json = getJsonString(jsonFile);
             sqwi = new KrillQuery("tokens").fromKoral(json);
         }
         catch (QueryException e) {
@@ -107,9 +108,11 @@
 
 
     // Get string
-    public static String getString (String path) {
+    public static String getJsonString (String path) {
+        
         StringBuilder contentBuilder = new StringBuilder();
         try {
+            path = URLDecoder.decode(path, "UTF-8");
             BufferedReader in = new BufferedReader(new FileReader(path));
             String str;
             while ((str = in.readLine()) != null) {
diff --git a/src/test/java/de/ids_mannheim/korap/collection/TestKrillCollectionJSON.java b/src/test/java/de/ids_mannheim/korap/collection/TestKrillCollectionJSON.java
index 9232711..8b08bda 100644
--- a/src/test/java/de/ids_mannheim/korap/collection/TestKrillCollectionJSON.java
+++ b/src/test/java/de/ids_mannheim/korap/collection/TestKrillCollectionJSON.java
@@ -186,7 +186,7 @@
     // Legacy collections reflect old tests, that were adopted to the new scheme
     @Test
     public void metaQuery1Legacy () {
-        String metaQuery = getString(getClass().getResource(
+        String metaQuery = getJsonString(getClass().getResource(
                 "/queries/metaquery.jsonld").getFile());
         KrillCollection kc = new KrillCollection(metaQuery);
 
@@ -211,7 +211,7 @@
 
     @Test
     public void metaQuery2Legacy () {
-        String metaQuery = getString(getClass().getResource(
+        String metaQuery = getJsonString(getClass().getResource(
                 "/queries/metaquery2.jsonld").getFile());
         KrillCollection kc = new KrillCollection(metaQuery);
         /*
@@ -227,7 +227,7 @@
 
     @Test
     public void metaQuery3Legacy () {
-        String metaQuery = getString(getClass().getResource(
+        String metaQuery = getJsonString(getClass().getResource(
                 "/queries/metaquery4.jsonld").getFile());
         KrillCollection kc = new KrillCollection(metaQuery);
         /*
@@ -245,7 +245,7 @@
 
     @Test
     public void metaQuery7Legacy () {
-        String metaQuery = getString(getClass().getResource(
+        String metaQuery = getJsonString(getClass().getResource(
                 "/queries/metaquery7.jsonld").getFile());
         KrillCollection kc = new KrillCollection(metaQuery);
         /*
@@ -266,7 +266,7 @@
 
     @Test
     public void metaQuery9 () {
-        String metaQuery = getString(getClass().getResource(
+        String metaQuery = getJsonString(getClass().getResource(
                 "/queries/metaquery9.jsonld").getFile());
         KrillCollection kc = new KrillCollection(metaQuery);
         /*
@@ -279,6 +279,6 @@
 
 
     private String _getJSONString (String file) {
-        return getString(getClass().getResource(path + file).getFile());
+        return getJsonString(getClass().getResource(path + file).getFile());
     };
 };
diff --git a/src/test/java/de/ids_mannheim/korap/highlight/TestClass.java b/src/test/java/de/ids_mannheim/korap/highlight/TestClass.java
index 0b1eb95..2371d3d 100644
--- a/src/test/java/de/ids_mannheim/korap/highlight/TestClass.java
+++ b/src/test/java/de/ids_mannheim/korap/highlight/TestClass.java
@@ -6,6 +6,7 @@
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
+import java.net.URLDecoder;
 
 import org.apache.lucene.search.spans.SpanQuery;
 import org.junit.Test;
@@ -29,8 +30,8 @@
     @Test
     public void queryJSONpoly1 () throws QueryException, IOException {
 
-        String jsonPath = getClass().getResource("/queries/poly1.json")
-                .getFile();
+        String jsonPath = URLDecoder.decode(getClass().getResource("/queries/poly1.json")
+                .getFile(),"UTF-8");
         String jsonQuery = readFile(jsonPath);
         SpanQueryWrapper sqwi = new KrillQuery("tokens").fromKoral(jsonQuery);
 
@@ -64,8 +65,8 @@
     @Test
     public void queryJSONpoly4 () throws QueryException, IOException {
 
-        String jsonPath = getClass().getResource("/queries/poly4.json")
-                .getFile();
+        String jsonPath = URLDecoder.decode(getClass().getResource("/queries/poly4.json")
+                .getFile(),"UTF-8");
         String jsonQuery = readFile(jsonPath);
         SpanQueryWrapper sqwi = new KrillQuery("tokens").fromKoral(jsonQuery);
         SpanQuery sq = sqwi.toQuery();
diff --git a/src/test/java/de/ids_mannheim/korap/highlight/TestHighlight.java b/src/test/java/de/ids_mannheim/korap/highlight/TestHighlight.java
index 45ae9e3..43c15eb 100644
--- a/src/test/java/de/ids_mannheim/korap/highlight/TestHighlight.java
+++ b/src/test/java/de/ids_mannheim/korap/highlight/TestHighlight.java
@@ -277,7 +277,7 @@
         ki.commit();
 
         // 15
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bugs/greater_highlights_15.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -292,7 +292,7 @@
                 kr.getMatch(0).getSnippetHTML(),
                 "<span class=\"context-left\"><span class=\"more\"></span>2. Herkunft Die aus dem proto-semitischen </span><span class=\"match\"><mark><mark class=\"class-15 level-0\">Alphabet</mark></mark></span><span class=\"context-right\"> stammende Urform des Buchstaben ist wahrscheinlich<span class=\"more\"></span></span>");
 
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/bugs/greater_highlights_16.jsonld").getFile());
 
         // 16
@@ -309,7 +309,7 @@
                 "<span class=\"context-left\"><span class=\"more\"></span>2. Herkunft Die aus dem proto-semitischen </span><span class=\"match\"><mark><mark class=\"class-16 level-0\">Alphabet</mark></mark></span><span class=\"context-right\"> stammende Urform des Buchstaben ist wahrscheinlich<span class=\"more\"></span></span>");
 
         // 127
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/bugs/greater_highlights_127.jsonld").getFile());
 
         ks = new Krill(json);
@@ -325,7 +325,7 @@
                 "<span class=\"context-left\"><span class=\"more\"></span>2. Herkunft Die aus dem proto-semitischen </span><span class=\"match\"><mark><mark class=\"class-127 level-0\">Alphabet</mark></mark></span><span class=\"context-right\"> stammende Urform des Buchstaben ist wahrscheinlich<span class=\"more\"></span></span>");
 
         // 255
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/bugs/greater_highlights_255.jsonld").getFile());
 
         ks = new Krill(json);
@@ -341,7 +341,7 @@
                 "<span class=\"context-left\"><span class=\"more\"></span>2. Herkunft Die aus dem proto-semitischen </span><span class=\"match\"><mark>Alphabet</mark></span><span class=\"context-right\"> stammende Urform des Buchstaben ist wahrscheinlich<span class=\"more\"></span></span>");
 
         // 300
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/bugs/greater_highlights_300.jsonld").getFile());
 
         ks = new Krill(json);
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestElementDistanceIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestElementDistanceIndex.java
index 026a86a..7716322 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestElementDistanceIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestElementDistanceIndex.java
@@ -5,6 +5,7 @@
 
 import java.util.*;
 import java.io.*;
+import java.net.URLDecoder;
 
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.spans.SpanQuery;
@@ -205,8 +206,9 @@
         ki.addDoc(getClass().getResourceAsStream("/wiki/00001.json.gz"), true);
         ki.commit();
 
-        SpanQueryWrapper sqwi = jsonQuery(getClass().getResource(
-                "/queries/cosmas1.json").getFile());
+        String jsonPath = URLDecoder.decode(getClass().getResource("/queries/cosmas1.json")
+                .getFile(),"UTF-8");
+        SpanQueryWrapper sqwi = jsonQuery(jsonPath);
         kr = ki.search(sqwi.toQuery(), (short) 10);
 
         assertEquals((long) 3, kr.getTotalResults());
@@ -233,8 +235,9 @@
         assertEquals(kr.getTotalResults(), 1);
         assertEquals("[[ecebdc]]", kr.getMatch(0).getSnippetBrackets());
 
-        sqwi = jsonQuery(getClass().getResource(
-                "/queries/distances/in-same-t.jsonld").getFile());
+        String jsonPath = URLDecoder.decode(getClass().getResource("/queries/distances/in-same-t.jsonld")
+                .getFile(),"UTF-8");
+        sqwi = jsonQuery(jsonPath);
 
         assertEquals(
                 "spanElementDistance(tokens:s:c, tokens:s:e, [(base/s:t[0:0], ordered, notExcluded)])",
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java b/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java
index 0962e64..a570e93 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java
@@ -6,6 +6,7 @@
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
+import java.net.URLDecoder;
 
 import org.apache.lucene.search.spans.SpanQuery;
 import org.junit.Test;
@@ -198,9 +199,11 @@
         };
         ki.commit();
 
+        String jsonPath = URLDecoder.decode(getClass().getResource("/queries/bsp18.jsonld")
+                .getFile(),"UTF-8");
+        
         // {1:der} \w0:5 nicht
-        SpanQueryWrapper sqwi = jsonQuery(getClass().getResource(
-                "/queries/bsp18.jsonld").getFile());
+        SpanQueryWrapper sqwi = jsonQuery(jsonPath);
 
         Result kr = ki.search(sqwi.toQuery(), 0, (short) 5, true, (short) 2,
                 false, (short) 5);
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java
index 08f56a8..7af71f0 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestSpanExpansionIndex.java
@@ -6,6 +6,7 @@
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
+import java.net.URLDecoder;
 
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.RegexpQuery;
@@ -295,9 +296,8 @@
         ki.addDoc(getClass().getResourceAsStream("/wiki/00001.json.gz"), true);
         ki.addDoc(getClass().getResourceAsStream("/wiki/00002.json.gz"), true);
         ki.commit();
-
-        String jsonPath = getClass().getResource("/queries/poly3.json")
-                .getFile();
+        String jsonPath = URLDecoder.decode(getClass().getResource("/queries/poly3.json")
+                .getFile(),"UTF-8");
         String jsonQuery = readFile(jsonPath);
         SpanQueryWrapper sqwi = new KrillQuery("tokens").fromKoral(jsonQuery);
 
@@ -405,9 +405,9 @@
         ki.addDoc(createFieldDoc3());
         ki.addDoc(createFieldDoc4());
         ki.commit();
-
-        String json = readFile(getClass().getResource(
-                "/queries/bugs/expansion_bug_3.jsonld").getFile());
+        String jsonPath = URLDecoder.decode(getClass().getResource("/queries/bugs/expansion_bug_3.jsonld")
+                .getFile(),"UTF-8");
+        String json = readFile(jsonPath);
         KrillQuery kq = new KrillQuery("base");
         SpanQuery sq = kq.fromKoral(json).toQuery();
         assertEquals(
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestWithinIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestWithinIndex.java
index f77f42a..7960560 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestWithinIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestWithinIndex.java
@@ -6,6 +6,7 @@
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
+import java.net.URLDecoder;
 
 import org.apache.lucene.index.Term;
 import org.apache.lucene.search.spans.SpanQuery;
@@ -1107,8 +1108,8 @@
     // contains(<s>, (es wird | wird es))
     @Test
     public void queryJSONpoly2 () throws QueryException, IOException {
-        String jsonPath = getClass().getResource("/queries/poly2.json")
-                .getFile();
+        String jsonPath = URLDecoder.decode(getClass().getResource("/queries/poly2.json")
+                .getFile(),"UTF-8");
         String jsonPQuery = readFile(jsonPath);
         SpanQueryWrapper sqwi = new KrillQuery("tokens").fromKoral(jsonPQuery);
 
@@ -1144,8 +1145,8 @@
           at de.ids_mannheim.korap.Krill.apply(Krill.java:304)
         */
 
-        String jsonPath = getClass().getResource(
-                "/queries/bugs/span_or_bug.jsonld").getFile();
+        String jsonPath = URLDecoder.decode(getClass().getResource(
+                "/queries/bugs/span_or_bug.jsonld").getFile(),"UTF-8");
         String jsonPQuery = readFile(jsonPath);
         SpanQueryWrapper sqwi = new KrillQuery("tokens").fromKoral(jsonPQuery);
 
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java b/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java
index 27f00f3..d66be4f 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestKrillQueryJSON.java
@@ -2,6 +2,7 @@
 
 import java.util.*;
 import java.io.*;
+import java.net.URLDecoder;
 
 import org.apache.lucene.search.spans.SpanQuery;
 import de.ids_mannheim.korap.query.wrap.SpanQueryWrapper;
@@ -617,7 +618,7 @@
     public static String getString (String path) {
         StringBuilder contentBuilder = new StringBuilder();
         try {
-            BufferedReader in = new BufferedReader(new FileReader(path));
+            BufferedReader in = new BufferedReader(new FileReader(URLDecoder.decode(path,"UTF-8")));
             String str;
             while ((str = in.readLine()) != null) {
                 contentBuilder.append(str);
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestTemporaryQueryLimitations.java b/src/test/java/de/ids_mannheim/korap/query/TestTemporaryQueryLimitations.java
index 72ae83e..d651318 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestTemporaryQueryLimitations.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestTemporaryQueryLimitations.java
@@ -48,7 +48,7 @@
         FieldDocument fd = ki.addDoc(json);
         ki.commit();
 
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/bugs/cosmas_classrefcheck.jsonld").getFile());
 
         Krill ks = new Krill(json);
diff --git a/src/test/java/de/ids_mannheim/korap/search/TestKrill.java b/src/test/java/de/ids_mannheim/korap/search/TestKrill.java
index 7ecf1c2..ab52dd0 100644
--- a/src/test/java/de/ids_mannheim/korap/search/TestKrill.java
+++ b/src/test/java/de/ids_mannheim/korap/search/TestKrill.java
@@ -1,6 +1,6 @@
 package de.ids_mannheim.korap.search;
 
-import static de.ids_mannheim.korap.TestSimple.getString;
+import static de.ids_mannheim.korap.TestSimple.getJsonString;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertFalse;
@@ -129,7 +129,7 @@
         };
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/metaquery3.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -161,7 +161,7 @@
         };
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/metaquery4.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -176,14 +176,14 @@
 
         assertEquals(kr.getTotalResults(), 5);
 
-        json = getString(getClass().getResource("/queries/metaquery5.jsonld")
+        json = getJsonString(getClass().getResource("/queries/metaquery5.jsonld")
                 .getFile());
 
         ks = new Krill(json);
         kr = ks.apply(ki);
         assertEquals(kr.getTotalResults(), 1);
 
-        json = getString(getClass().getResource("/queries/metaquery6.jsonld")
+        json = getJsonString(getClass().getResource("/queries/metaquery6.jsonld")
                 .getFile());
         ks = new Krill(json);
         kr = ks.apply(ki);
@@ -231,7 +231,7 @@
         };
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bsp-fail1.jsonld").getFile());
 
         Result kr = new Krill(json).apply(ki);
@@ -254,7 +254,7 @@
         };
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bsp-fail2.jsonld").getFile());
 
         Result kr = new Krill(json).apply(ki);
@@ -271,7 +271,7 @@
     public void queryJSONmirrorTestBug () throws IOException {
         // Construct index
         KrillIndex ki = new KrillIndex();
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bugs/failing_mirror.jsonld").getFile());
         Krill ks = new Krill(json);
         Result kr = ks.apply(ki);
@@ -281,7 +281,7 @@
 
         assertEquals("Unable to parse JSON", res.at("/errors/0/1").asText());
 
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/bugs/failing_mirror_2.jsonld").getFile());
         ks = new Krill(json);
         kr = ks.apply(ki);
@@ -311,7 +311,7 @@
         };
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bsp-context.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -330,7 +330,7 @@
         assertEquals(5, kr.getStartIndex());
         assertEquals(5, kr.getItemsPerPage());
 
-        json = getString(getClass()
+        json = getJsonString(getClass()
                 .getResource("/queries/bsp-context-2.jsonld").getFile());
 
         kr = new Krill(json).apply(ki);
@@ -363,7 +363,7 @@
         };
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bsp-paging.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -372,7 +372,7 @@
         assertEquals(5, kr.getStartIndex());
         assertEquals(5, kr.getItemsPerPage());
 
-        json = getString(getClass().getResource("/queries/bsp-cutoff.jsonld")
+        json = getJsonString(getClass().getResource("/queries/bsp-cutoff.jsonld")
                 .getFile());
         ks = ks = new Krill(json);
         kr = ks.apply(ki);
@@ -380,7 +380,7 @@
         assertEquals(2, kr.getStartIndex());
         assertEquals(2, kr.getItemsPerPage());
 
-        json = getString(getClass().getResource("/queries/metaquery9.jsonld")
+        json = getJsonString(getClass().getResource("/queries/metaquery9.jsonld")
                 .getFile());
         KrillCollection kc = new KrillCollection(json);
         kc.setIndex(ki);
@@ -400,7 +400,7 @@
                     true);
         };
         ki.commit();
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bsp-itemsPerResource.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -480,7 +480,7 @@
         };
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bsp-uid-example.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -665,7 +665,7 @@
                 getClass().getResourceAsStream("/bzk/D59-00089.json.gz"), true);
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bugs/cosmas_boundary.jsonld").getFile());
 
         QueryBuilder kq = new QueryBuilder("tokens");
@@ -723,7 +723,7 @@
 
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bugs/multiple_classes.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -753,7 +753,7 @@
 
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bugs/multiple_classes.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -795,7 +795,7 @@
         assertEquals("BZK", fd.getCorpusSigle());
 
         // [tt/p="A.*"]{0,3}[tt/p="N.*"]
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bugs/multiterm_rewrite.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -858,7 +858,7 @@
         ki.commit();
 
         // ({1:Sonne []* Erde} | {2: Erde []* Sonne})
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bugs/tokendistancespan_bug.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -881,7 +881,7 @@
                     true);
         };
         ki.commit();
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/metaquery8-nocollection.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -890,7 +890,7 @@
         assertEquals(0, kr.getStartIndex());
         assertEquals(10, kr.getItemsPerPage());
 
-        json = getString(getClass().getResource("/queries/metaquery8.jsonld")
+        json = getJsonString(getClass().getResource("/queries/metaquery8.jsonld")
                 .getFile());
 
         ks = new Krill(json);
@@ -901,7 +901,7 @@
         assertEquals(0, kr.getStartIndex());
         assertEquals(10, kr.getItemsPerPage());
 
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/metaquery8-filtered.jsonld").getFile());
 
         ks = new Krill(json);
@@ -912,7 +912,7 @@
         assertEquals(0, kr.getStartIndex());
         assertEquals(10, kr.getItemsPerPage());
 
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/metaquery8-filtered-further.jsonld").getFile());
 
         ks = new Krill(json);
@@ -923,7 +923,7 @@
         assertEquals(10, kr.getItemsPerPage());
 
 
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/metaquery8-filtered-nested.jsonld").getFile());
 
         ks = new Krill(json);
@@ -958,7 +958,7 @@
         };
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bsp-context-2.jsonld").getFile());
 
         Krill ks = new Krill(json);
@@ -978,7 +978,7 @@
         assertFalse(kr.getContext().toJsonNode().toString()
                 .equals("\"base/s:s\""));
 
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/bsp-context-sentence.jsonld").getFile());
 
         kr = new Krill(json).apply(ki);
@@ -1010,7 +1010,7 @@
         };
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bsp-bug.jsonld").getFile());
 
         Result kr = new Krill(json).apply(ki);
@@ -1034,7 +1034,7 @@
         ki.commit();
 
         // "der" []{2,3} [opennlp/p="NN"]
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bugs/distances_with_regex_bug.jsonld").getFile());
 
         Result kr = new Krill(json).apply(ki);
@@ -1059,7 +1059,7 @@
 
         // Expansion bug
         // der alte Digraph Aa durch Å
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bugs/expansion_bug_2.jsonld").getFile());
 
         Result kr = new Krill(json).apply(ki);
@@ -1079,7 +1079,7 @@
 
         // der alte Digraph Aa durch []
         // Works with one document
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/bugs/expansion_bug.jsonld").getFile());
 
         kr = new Krill(json).apply(ki);
@@ -1104,7 +1104,7 @@
 
         // Expansion bug
         // der alte Digraph Aa durch Å
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/bugs/expansion_bug_2.jsonld").getFile());
 
         kr = new Krill(json).apply(ki);
@@ -1117,7 +1117,7 @@
         assertEquals(kr.getTotalResults(), 1);
 
         // der alte Digraph Aa durch []
-        json = getString(getClass().getResource(
+        json = getJsonString(getClass().getResource(
                 "/queries/bugs/expansion_bug.jsonld").getFile());
 
         kr = new Krill(json).apply(ki);
@@ -1137,7 +1137,7 @@
         ki.addDoc(getClass().getResourceAsStream("/wiki/00001.json.gz"), true);
         ki.commit();
 
-        String json = getString(getClass().getResource(
+        String json = getJsonString(getClass().getResource(
                 "/queries/bugs/zero_repetition_bug.jsonld").getFile());
 
         Result kr = new Krill(json).apply(ki);
diff --git a/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java b/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
index 5e15394..b297672 100644
--- a/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
+++ b/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
@@ -47,7 +47,7 @@
         };
         ki.commit();
 
-        String jsonString = getString(getClass().getResource(
+        String jsonString = getJsonString(getClass().getResource(
                 "/queries/metas/fields.jsonld").getFile());
 
         Krill ks = new Krill(jsonString);
@@ -87,7 +87,7 @@
         assertTrue(res.at("/matches/0/layerInfos").isMissingNode());
         assertTrue(res.at("/matches/0/tokenization").isMissingNode());
 
-        jsonString = getString(getClass().getResource(
+        jsonString = getJsonString(getClass().getResource(
                 "/queries/metas/fields_2.jsonld").getFile());
         ks = new Krill(jsonString);
         kr = ks.apply(ki);
@@ -125,7 +125,7 @@
         ki.addDoc(getClass().getResourceAsStream("/goe/AGX-00002.json"), false);
         ki.commit();
 
-        String jsonString = getString(getClass().getResource(
+        String jsonString = getJsonString(getClass().getResource(
                 "/queries/metas/fields_no.jsonld").getFile());
 
         Krill ks = new Krill(jsonString);
@@ -153,7 +153,7 @@
 
 
         // All fields
-        jsonString = getString(getClass().getResource(
+        jsonString = getJsonString(getClass().getResource(
                 "/queries/metas/fields_all.jsonld").getFile());
 
         ks = new Krill(jsonString);
@@ -184,7 +184,7 @@
 
 
         // @All fields
-        jsonString = getString(getClass().getResource(
+        jsonString = getJsonString(getClass().getResource(
                 "/queries/metas/fields_at_all.jsonld").getFile());
 
         ks = new Krill(jsonString);
@@ -245,7 +245,7 @@
         ki.commit();
 
         // textClass = reisen & wissenschaft
-        String jsonString = getString(getClass().getResource(
+        String jsonString = getJsonString(getClass().getResource(
                 "/queries/collections/collection_textClass.jsonld").getFile());
         Krill ks = new Krill(jsonString);
         KrillCollection kc = ks.getCollection();
@@ -253,7 +253,7 @@
         assertEquals(1, kc.numberOf("documents"));
 
         // textClass = reisen
-        jsonString = getString(getClass().getResource(
+        jsonString = getJsonString(getClass().getResource(
                 "/queries/collections/collection_textClass_2.jsonld").getFile());
         ks = new Krill(jsonString);
         kc = ks.getCollection();
@@ -276,7 +276,7 @@
         */
 
         // author = wolfgang
-        jsonString = getString(getClass().getResource(
+        jsonString = getJsonString(getClass().getResource(
                 "/queries/collections/collection_goethe.jsonld").getFile());
         ks = new Krill(jsonString);
         kc = ks.getCollection();
@@ -284,7 +284,7 @@
         assertEquals(1, kc.numberOf("documents"));
 
         // author = Wolfgang
-        jsonString = getString(getClass().getResource(
+        jsonString = getJsonString(getClass().getResource(
                 "/queries/collections/collection_goethe_2.jsonld").getFile());
         ks = new Krill(jsonString);
         kc = ks.getCollection();
@@ -303,7 +303,7 @@
     public void searchMetaContext () throws IOException {
 
         // All fields
-        String jsonString = getString(getClass().getResource(
+        String jsonString = getJsonString(getClass().getResource(
                 "/queries/metas/context_paragraph.jsonld").getFile());
 
         Krill ks = new Krill(jsonString);
diff --git a/src/test/java/de/ids_mannheim/korap/search/TestResult.java b/src/test/java/de/ids_mannheim/korap/search/TestResult.java
index a106fae..12e5b3d 100644
--- a/src/test/java/de/ids_mannheim/korap/search/TestResult.java
+++ b/src/test/java/de/ids_mannheim/korap/search/TestResult.java
@@ -2,6 +2,7 @@
 
 import java.util.*;
 import java.io.*;
+import java.net.URLDecoder;
 
 import org.apache.lucene.search.spans.SpanQuery;
 
@@ -263,7 +264,7 @@
     public static String getString (String path) {
         StringBuilder contentBuilder = new StringBuilder();
         try {
-            BufferedReader in = new BufferedReader(new FileReader(path));
+            BufferedReader in = new BufferedReader(new FileReader(URLDecoder.decode(path,"UTF-8")));
             String str;
             while ((str = in.readLine()) != null) {
                 contentBuilder.append(str);
diff --git a/src/test/java/de/ids_mannheim/korap/server/TestResource.java b/src/test/java/de/ids_mannheim/korap/server/TestResource.java
index 633a277..908f3e9 100644
--- a/src/test/java/de/ids_mannheim/korap/server/TestResource.java
+++ b/src/test/java/de/ids_mannheim/korap/server/TestResource.java
@@ -17,6 +17,7 @@
 import org.junit.Test;
 
 import java.io.FileInputStream;
+import java.net.URLDecoder;
 
 import de.ids_mannheim.korap.server.Node;
 import de.ids_mannheim.korap.response.Result;
@@ -267,7 +268,7 @@
     public static String getString (String path) {
         StringBuilder contentBuilder = new StringBuilder();
         try {
-            BufferedReader in = new BufferedReader(new FileReader(path));
+            BufferedReader in = new BufferedReader(new FileReader(URLDecoder.decode(path,"UTF-8")));
             String str;
             while ((str = in.readLine()) != null) {
                 contentBuilder.append(str);