文件解码后,PDF 附件已损坏



我有解码邮件中所有附件的代码:

for (String key : attachments.keySet()) { String fileContent = attachments.get(key); attachments.put(key, getEncodedPartFromAttachment(fileContent)); }

private String decodeFileContent(String encodedData) { return new String(Base64.getDecoder().decode(encodedData)); }

编码和解码后,我遇到了一些问题,例如:

原始 PDF: %âãÏÓ

转换后的 PDF: %

原始PDF: H‰d;1 D ̄2'°l'Χ¥¡¢@²Ü¿À†XØ&Ò›ÌG~€Épõ·

变换后的 PDF: H d ;1 D 2' l'Χ @ ׿ X &ʛ G~ p

有没有办法在编码-解码时不损坏内容?

PDF文件是二进制文件;它们尤其可以包含任意字节序列。

将二进制数据强制为字符串:

return new String(...);

根据该转换中给定或假设的编码,这会损坏二进制 PDF 数据,甚至可能无法修复。

因此,请将二进制附件作为二进制文件处理,例如作为byte[]ByteBuffer

最新更新