我们使用JasperReports 4.6.0和Java 1.6来生成PDF报告。对于带有英文文本的参数来说,它工作得很好。如果我传递阿拉伯语输入参数 输入参数 就像垃圾字符一样传递,因此我无法获取记录集。当我使用 JasperReports 3.7.6 和 Java 1.5
时,效果相同我的代码:
JasperPrint print = null;
Runtime run = null;
String strJasperFile = "E:/DailyWork/FEB-2013/report2.jasper";
String strOutputFile = "E:/DailyWork/FEB-2013/report2.xls";
String printtime="";
Connection con = getSqlConnection();
HashMap mpDetailSp = new HashMap();
mpDetailSp.put("parameter1", "B المهمات");
print = JasperFillManager.fillReport(strJasperFile, mpDetailSp, con);
JRExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, strOutputFile);
exporter.exportReport();
您能告诉我如何解决这个问题吗?
最佳答案
不是 Jasper 的专家,我可以认为问题出在文本编码中。我进行了简短的搜索并找到了此资源:http://www.adp-gmbh.ch/misc/tools/jasper/java.html
请看一下模板示例,并关注<?xml version="1.0" encoding="UTF-8"?>
行在文件顶部。您的文件是否report2.jasper
包含这样的行?检查它并包含它,如果丢失的话。
另外添加一行
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
我希望现在一切顺利。
关于java - 阿拉伯语输入参数像垃圾输入一样传递 JasperReports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14814230/