2012-04-23 49 views
1

我有一個報告和一個子報告與法國國際化的資源包。沒有錯誤也沒有警告,但是當我使用這個報告創建pdf時,出現了奇怪的字符,因爲編碼錯誤(例如,é爲é)。賈斯珀報告,子報告和編碼

我仍在調查這個問題,但我想這是子報告相關。

幾個精度:

  • 我不知道爲什麼,但屬性文件是UTF8編碼,以及資源包的讀者重寫了(我不能改變:()
  • 特殊字符看起來在主報告罰款;問題只發生在子報表部分(一切都來自同一個屬性文件)

回答

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

在你的屬性文件,你有沒有嘗試過使用的代碼字符/特殊字符?

例如字符 「é」 必須是\u00E9

+0

是的,這方法可行,但脂肪是,這意味着該屬性文件現在ANSI編碼,和特殊字符被忽略Unicode序列表示... 我必須解決這個問題只有一個字符集:UTF -8 – alith 2012-04-25 22:17:56