Это ответ для другого разработчика, у которого также есть проблема с кодированием при создании отчетов ...
У меня была похожая проблема при создании отчетов, например, с французским языковым стандартом.Мои пакеты и файлы шаблонов хранятся в базе данных, что позволяет создавать новые шаблоны и локали без перекомпиляции проекта.НО все символы с акцентами, содержащиеся во французском пакете, печатаются неправильно.Итак, я:
- Проверьте кодировку набора символов (для UTF-8 без спецификации)
- Проверьте заголовок XML файла отчета .jrxml ()
Я думаю, что отчеты Jasper используют UTF-8 по умолчанию для генерации отчетов, но я не уверен на 100%.Это может быть вызвано с помощью:
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING, "UTF-8");
Проблема сохраняется снова, поэтому вместо:
ResourceBundle bundle = new PropertyResourceBundle(new ByteArrayInputStream(myBundle)); // myBundle is a byte array retrieve from a DB
Я делаю это:
InputStreamReader reader = new InputStreamReader(new ByteArrayInputStream(myBundle), Charset.forName("UTF-8"));
ResourceBundle bundle = new PropertyResourceBundle(reader);
После этого просто прохождениепакет ресурсов для JasperFillManager, и теперь все идет хорошо.Может быть, это так просто, но это сэкономило бы мне 2 или 3 часа исследований ...