

はじめまして  
開発環境EclipseにおいてGUI計算プログラムを作成しています。(javaFX)  
プログラムの結果を帳票ツールのJasperReportを利用して出力することが目的です。

テンプレートとしたjrxmlを用意して、JavaのBeanクラスからデータを渡しています。  
java側で動的にjrxmlをコンパイルし、printをJasperViewerで表示する形です。  
また、データには、日本語文字列、数字など様々な値をすべてStringクラスでフィールド設定しています。テンプレートのフィールドテキストは、MSゴシックを選択しています。

このソースを開発環境上で、はしらせた場合にはViewerで表示がされ希望通りの結果となります。（日本語の出力も可）

しかし、このプロジェクトをEclipseで、build.fxbuildを用いて、  
build.xmlを作成してインストーラーを作成し、windowsへインストールした場合、beanから取得されたフィールド値が文字化けします。（日本語のみ）

Stringクラスの保持する文字コードだろうと思い  
予め文字コードを宣言して下記をbeanのセッターメソッドへ追記しました。

[code]

        new String(String.getBytes()."UTF-8")
    
[/code]

結果は再度ビルドしなおしても変わらずでした。

以下個人的に考察した事項です。

・コンパイル時にbeanメンバのString（UTF-16?）の文字コードが変わってしまうのか  
・そもそも変換の仕方が違うのか  
・jrxml側のフィールドテキストでエンコード指定ができるのか

などですが、１日中ググっても解決に至らずお手上げ状態です。

みなさんご教授お願い致します。

追記

プログラミングは、家のノートとデスクトップでやっていまして、デスクトップ(win10)ではeclipseでシステムエンコーディングはutf-8、eclipseワークスペース設定も同様でした。  
ノート(win7)の確認が取れてませんが、怪しい可能性があります。

どこかで見た内容ですが、  
eclipseのワークスペースでutf-8等文字コードを設定しても、別の環境で作成または編集保存をしたjavaファイルを、eclipseがコンパイルするときに別の文字コードで実行してまう。  
事実であれば、別環境(別デフォルトエンコーディング)でプログラムしていることで、文字コードが混在した状況なのかもしれません。


CC BY-SA 4.0
2018-09-13T08:33:00.200
48359
2018-09-14T22:45:23.297
2018-09-14T22:45:23.297
28346
28346
question
java
JasperReportsの文字化けについて