Author: tilman
Date: Sun Jul 13 07:08:13 2025
New Revision: 1927170

URL: http://svn.apache.org/viewvc?rev=1927170&view=rev
Log:
PDFBOX-5660: avoid default encoding

Modified:
    
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationStamp.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationStamp.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationStamp.java?rev=1927170&r1=1927169&r2=1927170&view=diff
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationStamp.java
 (original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/fdf/FDFAnnotationStamp.java
 Sun Jul 13 07:08:13 2025
@@ -116,7 +116,7 @@ public class FDFAnnotationStamp extends
         }
         if (base64EncodedAppearance != null && 
!base64EncodedAppearance.isEmpty())
         {
-            LOG.debug("Decoded XML: {}", () -> new 
String(decodedAppearanceXML, StandardCharsets.UTF_8));
+            LOG.debug("Decoded XML:\n====\n{}\n====", () -> new 
String(decodedAppearanceXML, StandardCharsets.UTF_8));
 
             Document stampAppearance = XMLUtil
                     .parse(new ByteArrayInputStream(decodedAppearanceXML));
@@ -253,8 +253,16 @@ public class FDFAnnotationStamp extends
                         {
                             try (OutputStream os = stream.createOutputStream())
                             {
-                                // not sure about charset
-                                os.write(child.getTextContent().getBytes());
+                                String encoding = 
child.getOwnerDocument().getXmlEncoding();
+                                if (encoding == null)
+                                {
+                                    encoding = 
child.getOwnerDocument().getInputEncoding();
+                                }
+                                if (encoding == null)
+                                {
+                                    encoding = "UTF-8";
+                                }
+                                
os.write(child.getTextContent().getBytes(encoding));
                                 LOG.debug("{} => Data was streamed", 
parentAttrKey);
                             }
                         }


Reply via email to