java - 阿拉伯语输入参数像垃圾输入一样传递 JasperReports

标签 java jasper-reports

我们使用JasperReports 4.6.0Java 1.6来生成PDF报告。对于带有英文文本的参数来说,它工作得很好。如果我传递阿拉伯语输入参数 输入参数 就像垃圾字符一样传递,因此我无法获取记录集。当我使用 JasperReports 3.7.6Java 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/

相关文章:

java - 打印(使用 lpr)可以从命令行进行,但不能从 Java 进行

java - 如何反序列化 jackson 中两个列表的数组

java - 有使用 JasperReports 绘制气泡图的资源吗?

xml - JasperReports:从数据集中删除重复的值

java - Spring Async 方法隐藏异常

java - Dom4 1.6.1j : XPath that returns non-node type value possible?

java - Android Studio 未找到主要 Activity

java - jackson 映射器 : Unable to convert JSON object to Java Singleton class

java - 使用 JasperReports 呈现任意 XHTML

xml - 表组件显示 XML 数据源的空白报告