Jasper报告,子报告和编码

时间:2012-04-23 05:45:52

标签: java encoding utf-8 jasper-reports subreport

我有一个报告和一个带有法国国际化资源包的子报告。没有引发错误或警告,但是当我使用此报告创建pdf时,由于编码错误(é为é是一个示例),会出现奇怪的字符。

我仍在调查这个问题,但我猜这与子报道有关。

几个准则:

  • 我不知道为什么,但属性文件是utf8编码的,资源包的读者被覆盖(我不允许改变它:()。
  • 主要报告中的特殊字符看起来很好;问题只发生在子报表部分。 (并且所有内容都来自同一属性文件)

2 个答案:

答案 0 :(得分:4)

好的问题解决了:

在java文件中,在覆盖resourcebundle上所需的任何内容之后(对我来说:UTF-8作为输入编码),你可以这样做:

reportParamMap.put(JRParameter.REPORT_RESOURCE_BUNDLE, resourceBundle);

好吧,在JRXML文件中,不要忘记将资源包传递给需要它的子报告:

<subreport>

    <reportElement />

    <subreportParameter name="REPORT_RESOURCE_BUNDLE">
        <subreportParameterExpression>
            <![CDATA[$P{REPORT_RESOURCE_BUNDLE}]]>
        </subreportParameterExpression>
    </subreportParameter>

    <dataSourceExpression/>

    <subreportExpression/>

</subreport>

答案 1 :(得分:1)

在您的属性文件中,您是否尝试过使用字符/特殊字符的代码?

例如,字符“é”必须为\u00E9