JasperReportsの文字化けについて
はじめまして
開発環境EclipseにおいてGUI計算プログラムを作成しています。(javaFX)
プログラムの結果を帳票ツールのJasperReportを利用して出力することが目的です。
テンプレートとしたjrxmlを用意して、JavaのBeanクラスからデータを渡しています。
java側で動的にjrxmlをコンパイルし、printをJasperViewerで表示する形です。
また、データには、日本語文字列、数字など様々な値をすべてStringクラスでフィールド設定しています。テンプレートのフィールドテキストは、MSゴシックを選択しています。
このソースを開発環境上で、はしらせた場合にはViewerで表示がされ希望通りの結果となります。(日本語の出力も可)
しかし、このプロジェクトをEclipseで、build.fxbuildを用いて、
build.xmlを作成してインストーラーを作成し、windowsへインストールした場合、beanから取得されたフィールド値が文字化けします。(日本語のみ)
Stringクラスの保持する文字コードだろうと思い
予め文字コードを宣言して下記をbeanのセッターメソッドへ追記しました。
new String(String.getBytes()."UTF-8")
結果は再度ビルドしなおしても変わらずでした。
以下個人的に考察した事項です。
・コンパイル時にbeanメンバのString(UTF-16?)の文字コードが変わってしまうのか
・そもそも変換の仕方が違うのか
・jrxml側のフィールドテキストでエンコード指定ができるのか
などですが、1日中ググっても解決に至らずお手上げ状態です。
みなさんご教授お願い致します。
追記
プログラミングは、家のノートとデスクトップでやっていまして、デスクトップ(win10)ではeclipseでシステムエンコーディングはutf-8、eclipseワークスペース設定も同様でした。
ノート(win7)の確認が取れてませんが、怪しい可能性があります。
どこかで見た内容ですが、
eclipseのワークスペースでutf-8等文字コードを設定しても、別の環境で作成または編集保存をしたjavaファイルを、eclipseがコンパイルするときに別の文字コードで実行してまう。
事実であれば、別環境(別デフォルトエンコーディング)でプログラムしていることで、文字コードが混在した状況なのかもしれません。