1

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

我仍在调查该问题,但我想它与子报告有关。

几个精度:

  • 我不知道为什么,但是属性文件是 utf8 编码的,并且资源包的读取器被覆盖(并且我不允许更改它:()。
  • 特殊字符在主报告中看起来不错;该问题仅出现在子报表部分。(一切都来自同一个属性文件)
4

2 回答 2

4

好的问题解决了:

在 java 文件中,在覆盖资源包上需要的任何内容之后(对我来说: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>
于 2012-04-26T01:02:43.903 回答
1

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

例如字符“ é”必须是\u00E9

于 2012-04-23T08:16:30.543 回答