文件解码后 PDF 附件损坏
PDF attachments are corrupted after file decoding
我有解码邮件中所有附件的代码:
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;1D¯2'°l'¢@²Ü¿À†XØ&Ò›ÌG~€Épõ·
转换后的 PDF:H�d�;1D�2'��l'Γ��@��������X��&˛��G~��p��
有没有办法在编码解码时不破坏内容?
PDF文件是二进制文件;它们尤其可以包含任意字节序列。
你把二进制数据强行变成字符串:
return new String(...);
根据该转换中给出或假定的编码,这会损坏二进制 PDF 数据,甚至可能无法修复。
因此,请将二进制附件作为二进制文件处理,例如作为 byte[]
或 ByteBuffer
.
我有解码邮件中所有附件的代码:
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;1D¯2'°l'¢@²Ü¿À†XØ&Ò›ÌG~€Épõ·
转换后的 PDF:H�d�;1D�2'��l'Γ��@��������X��&˛��G~��p��
有没有办法在编码解码时不破坏内容?
PDF文件是二进制文件;它们尤其可以包含任意字节序列。
你把二进制数据强行变成字符串:
return new String(...);
根据该转换中给出或假定的编码,这会损坏二进制 PDF 数据,甚至可能无法修复。
因此,请将二进制附件作为二进制文件处理,例如作为 byte[]
或 ByteBuffer
.