From 6d10f26718f84591671d7cafdcc009345b9c777e Mon Sep 17 00:00:00 2001 From: Andreas Beeker Date: Sun, 21 Feb 2021 18:52:23 +0000 Subject: [PATCH] Use UTF-8 when writing SVG files git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1886768 13f79535-47bb-0310-9956-ffa450edef68 --- src/ooxml/java/org/apache/poi/xslf/util/SVGFormat.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/ooxml/java/org/apache/poi/xslf/util/SVGFormat.java b/src/ooxml/java/org/apache/poi/xslf/util/SVGFormat.java index 3dd791f7da..1725aa4f10 100644 --- a/src/ooxml/java/org/apache/poi/xslf/util/SVGFormat.java +++ b/src/ooxml/java/org/apache/poi/xslf/util/SVGFormat.java @@ -22,7 +22,10 @@ package org.apache.poi.xslf.util; import java.awt.Dimension; import java.awt.Graphics2D; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStreamWriter; +import java.nio.charset.StandardCharsets; import org.apache.batik.dom.GenericDOMImplementation; import org.apache.batik.svggen.SVGGraphics2D; @@ -55,7 +58,11 @@ public class SVGFormat implements OutputFormat { @Override public void writeSlide(MFProxy proxy, File outFile) throws IOException { - svgGenerator.stream(outFile.getCanonicalPath(), true); + // Batik DEFAULT_XML_ENCODING is ISO-8859-1 ... srsly?! + // Unicode entities aren't encoded, so use UTF-8 + try (OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(outFile.getCanonicalPath()), StandardCharsets.UTF_8)) { + svgGenerator.stream(writer, true); + } } @Override