我有一个(非常简单的)java Spring Boot/REST服务,它从输入中呈现PDF并使用IntelliJ对其进行测试。
我使用pdfbox作为创建此类pdf的工具。
一个特点是,除了它想要的常规内容外,客户端还可以将附件作为字节[]提供。
当用户尝试该服务时,最终文档只有附件部分的空白页。
当我注意到使用postman时,它工作得很好,我更改了生成的响应文件的IntelliJ默认文件编码(从UTF-8更改为ISO-8859-1),然后连续的文档清晰正确。。。不要忘记,这个问题似乎只影响附件。常规内容总是好的。
我尝试了很多字节转换都没有成功,例如:
new String(annexe, StandardCharsets.ISO_8859_1).getBytes(StandardCharsets.UTF_8);
但是每次我都有例外:
java.io.IOException: java.util.zip.DataFormatException: invalid stored block lengths
文档以字节[]的形式发回,如下所示:
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
pdfDocument.save(outputStream);
pdfDocument.close();
return outputStream.toByteArray();
将文档保存到文件中的代码完全相同,只给出了一个文件输出流。
文件中添加了如下附件:
for(byte[] content : annexes) {
PDDocument annex = PDDocument.load(content);
for (PDPage page : annex .getPages()) {
pdfDocument.importPage(page);
}
}
我也尝试了PDF Merger实用程序,但得到了相同的结果(空白页为附件)
多亏了Tilman Hausherr的建议,我试着用Base64编码字节[]。getEncoder()。编码(…) 这就行了!
客户端现在必须处理Base64编码的字符串,但它至少可以工作。
非常感谢。
最近,我们正在将java构建作业从serverA迁移到serverB,java源代码(包含中文字符)在使用Ant的原始serverA上编译良好( ),但是,当我们将相同的代码签出到新的serverB并运行相同的Ant脚本时,出现了编码错误,如“用于编码GBK的Unmappable character”(Unmappable character for encoding GBK)。(JDK版本相同)
当从其中一个web服务获取数据时,引号(“)将显示为(?)当我使用Rest模板时。我在chrome上的postman中测试了web服务,并给出了正确的字符。我尝试编码UTF-8,但没有成功。 我检查了以下是从Web服务提供商编码: 高速缓存控制→私有连接→关闭内容编码→gzip内容长度→3407内容类型→text/xml; charset=ISO-8859-1日期→周三,2015 13:35:53
问题内容: 我尝试使用java.io.FileReader读取一些文本文件并将其转换为字符串,但是我发现结果编码错误并且根本不可读。 这是我的环境: Windows 2003,操作系统编码:CP1252 Java 5.0 我的文件是UTF-8编码或CP1252编码的,其中一些(UTF-8编码的文件)可能包含中文(非拉丁)字符。 我使用以下代码来完成我的工作: 上面的代码不起作用。我发现FileRe
我在gradle运行junit测试时遇到了一个问题。从stacktrace来看,这似乎是一个编码问题。 我已将编码设置为 谢谢
我正在尝试通过golang使用JSON API,但是在获得响应时遇到了可怕的时间。我正在使用示例 JSON 终结点 http://jsonplaceholder.typicode.com/posts/1,该终结点返回 这是我的代码,来自这个堆栈溢出答案: 这是输出: 我知道endpoint有效。这是编码问题还是其他问题?我在Mac OSX 10.11.15上。 谢谢
我有这样一个csv文件 我在读书