Sunday, January 3, 2016

Jasper Localization From Property File:Encoding Issue


Recently In a Project I used Jasper to generate PDF forms.While doing this task I encountered a problem with Localization of Jasper Fields from Property Files.

Normally we include below attribute in JRXML header to point to localization files.







Localization files will be in same folder where JRXML is placed and localization files will be in below format.
  • jasperreports_en.properties
  • jasperreports_th.properties
  • etc
And each file will have key value pair like

delivery.date=Delivery Date
delivery.print.date=Print Date

and it will be used in JRXML in below format


and Localization is passed to JRXML in below format
 parameterMap.put(JRParameter.REPORT_LOCALE, new Locale("th"));
Encoding Issue:

When I generated the PDF for Thai language the output was a bunch of junk values.



The problem is resource bundle reads the property files in ASCII encoding even though property file is encoded in UTF-8

Soultion:

Remove the resourcebundle attribute from JRXML and configure it in Java class with UTF-8 Encoding.


 
 try 
 {
  InputStream input = this.getClass().getClassLoader().getResourceAsStream("jasperreport_"+locale.getLanguage()+ ".properties");
  Reader reader = new InputStreamReader(input, "UTF-8");
  ResourceBundle resourceBundle = new PropertyResourceBundle(reader);
  parameters.put(JRParameter.REPORT_RESOURCE_BUNDLE,resourceBundle);
 } 
 catch (IOException  e1) 
 {
  LOG.error("Error locating localize file ",e1);
 } 

5 comments:

Green Grace said...

Your blog is really very interesting information regarding real estate.
Green Grace
Vertex Panache
Assetz 63 Degree East

Prop Ladder said...

Your blog is really very nice
flats for sale in hyderabad
apartments for sale in hyderabad
real estate in hyderabad

Lanco Hills said...

It's really a great and helpful piece of line.I am glad that you shared this helpful info with us.Please keep us informed like this.
Thanks for sharing.

Lanco Hills Hyderabad
sai keerthi prime Hyderabad
Ramky One Kosmos
Bella Vista Villas

geetha sri said...

Thanks For Sharing this Blog…
Prestige High Fields
Arvind Skylands
2 BHK Flats for sale in Isnapur
Incor One City
SMR Vinay Harmony County

Pranavi said...
This comment has been removed by a blog administrator.

Post a Comment