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 eabf6530c240c2cd51c0b66f8aa9ecda63b14cd5..4d1e27843d31de716cb6f9415b28e5fad39ed035 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 167e76b14b60eb0ed9d59738adff5bc1714872d5..80b13a40f6f5d85884ff4c06738bb64c64f8d932 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 3f1ff99a8d086687a6b919b37e8ca15c0c0ecd48..ec7749dd9684146094486092f2929e00ca302974 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);
 	}
 }