From cb662033de7c9c14f713fe6553f8bd919704d14e Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Wed, 14 Jan 2015 16:08:19 +0100 Subject: [PATCH] OO-1389: escape & in docx header and copy the header with UTF-8 charset --- src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java | 3 +++ .../java/org/olat/core/util/openxml/OpenXMLDocumentWriter.java | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java b/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java index 6106efb167d..98a2eeb95ee 100644 --- a/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java +++ b/src/main/java/org/olat/core/util/openxml/OpenXMLDocument.java @@ -102,6 +102,9 @@ public class OpenXMLDocument { public void setDocumentHeader(String header) { documentHeader = header; + if(StringHelper.containsNonWhitespace(documentHeader)) { + documentHeader = documentHeader.replace("&", "&"); + } } public VFSContainer getMediaContainer() { diff --git a/src/main/java/org/olat/core/util/openxml/OpenXMLDocumentWriter.java b/src/main/java/org/olat/core/util/openxml/OpenXMLDocumentWriter.java index 89d0697d657..2d05fbbc7b4 100644 --- a/src/main/java/org/olat/core/util/openxml/OpenXMLDocumentWriter.java +++ b/src/main/java/org/olat/core/util/openxml/OpenXMLDocumentWriter.java @@ -23,6 +23,7 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.nio.charset.Charset; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -110,7 +111,7 @@ public class OpenXMLDocumentWriter { for(HeaderReference headerRef:document.getHeaders()) { ZipEntry headerDocument = new ZipEntry("word/" + headerRef.getFilename()); out.putNextEntry(headerDocument); - IOUtils.write(headerRef.getHeader(), out); + IOUtils.write(headerRef.getHeader(), out, Charset.forName("UTF-8")); out.closeEntry(); } -- GitLab