]> source.dussan.org Git - poi.git/commitdiff
Use UTF-8 when writing SVG files
authorAndreas Beeker <kiwiwings@apache.org>
Sun, 21 Feb 2021 18:52:23 +0000 (18:52 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Sun, 21 Feb 2021 18:52:23 +0000 (18:52 +0000)
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

index 3dd791f7da90f7c3d36a0733977a05fd49f8ed35..1725aa4f108f5d7fb0fa034b927aa8271ab38165 100644 (file)
@@ -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