我正在使用JasperReports和DynamicReports這塊java代碼來創建一個包含utf-8字符的pdf格式的報告,問題是生成的pdf文件不包含utf-所有8個字符,就像它們被替換爲「」一樣。當使用OutputStream創建utf-8文件時,有什麼我應該知道的嗎?使用FileOutputStream創建一個UTF-8 PDF文件
public void toPdf(String path){
OutputStream outHtml;
try {
outHtml = new FileOutputStream(path);
jasperBuilder.toPdf(outHtml);
} catch (Exception e1) {
logger.error("failed to create PDF", e1);
}
}
這可能是值得注意的,即創建XLS和HTML文件時不會面臨這樣的問題。
請注意,我已追蹤到jasperBuilder.toPdf(outHtml);
下有很多代碼行,並且在這些行中沒有我的utf-8字符正在被刪除。所以我猜魔鬼在outHtml = new FileOutputStream(path);
「UTF-8 characters」是什麼意思? UTF-8只是一種編碼 - 它可以編碼所有* Unicode字符。 –
日本人字符。或波斯語字符正在從報告中刪除 – MoienGK
正確。這聽起來像是值得關注如何配置'jasperBuilder'。它會是關於那個而不是'FileOutputStream'。 –