From cab30e8e46f2dd049d6cae0e4ec81f97a4e7fa63 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Mon, 3 Jun 2019 15:00:32 +0200 Subject: [PATCH] OO-4062: encoding / decoding issue with byte array source --- .../form/flexible/impl/elements/richText/TextMode.java | 4 ++-- .../ims/qti21/ui/editor/interactions/FIBEditorController.java | 4 ++-- .../form/flexible/impl/elements/richText/TextModeTest.java | 3 +++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TextMode.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TextMode.java index eabf6530c24..4d1e27843d3 100644 --- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TextMode.java +++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TextMode.java @@ -19,7 +19,7 @@ */ package org.olat.core.gui.components.form.flexible.impl.elements.richText; -import java.io.ByteArrayInputStream; +import java.io.StringReader; import java.util.ArrayList; import java.util.List; @@ -122,7 +122,7 @@ public enum TextMode { private static void parse(String text, DefaultHandler handler) throws Exception { HtmlParser parser = new HtmlParser(XmlViolationPolicy.ALTER_INFOSET); parser.setContentHandler(handler); - parser.parseFragment(new InputSource(new ByteArrayInputStream(text.getBytes())), ""); + parser.parseFragment(new InputSource(new StringReader(text)), ""); } private static final class TextAnalyser extends DefaultHandler { diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java index 167e76b14b6..80b13a40f6f 100644 --- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java +++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java @@ -19,8 +19,8 @@ */ package org.olat.ims.qti21.ui.editor.interactions; -import java.io.ByteArrayInputStream; import java.io.File; +import java.io.StringReader; import org.json.JSONException; import org.json.JSONObject; @@ -335,7 +335,7 @@ public class FIBEditorController extends FormBasicController { try { HtmlParser parser = new HtmlParser(XmlViolationPolicy.ALTER_INFOSET); parser.setContentHandler(new SolutionExtractorHandler()); - parser.parse(new InputSource(new ByteArrayInputStream(content.getBytes()))); + parser.parse(new InputSource(new StringReader(content))); } catch (Exception e) { logError("", e); } diff --git a/src/test/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TextModeTest.java b/src/test/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TextModeTest.java index 3f1ff99a8d0..ec7749dd968 100644 --- a/src/test/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TextModeTest.java +++ b/src/test/java/org/olat/core/gui/components/form/flexible/impl/elements/richText/TextModeTest.java @@ -68,5 +68,8 @@ public class TextModeTest { String linedText2 = TextMode.toMultiLine("<p>Lorem</p>ipsum<br>dolor<p>sit amet</p>"); Assert.assertEquals("Lorem\nipsum\ndolor\nsit amet", linedText2); + + String linedText3 = TextMode.toMultiLine("<p>Lorem</p>ipsum<br>dolor<p>sit \u00E4met</p>"); + Assert.assertEquals("Lorem\nipsum\ndolor\nsit \u00E4met", linedText3); } } -- GitLab