2017-12-17 31 views
1

私は最近eclipseでアプリケーションを作成しました。私は実行可能な瓶としてそれを輸出し、英語ではすべてギリシャ文字以外は正常に動作しています。私のアプリケーションの中にギリシャ語の文字を含むファイルをインポートしようとすると、正しく表示されません。私はすべてのエンコーディングをUTF-8に変更しようとしましたが、運はありませんでした。私もギリシャのメニューと正確なアプリケーションを持って、それはどちらか正しく表示されません。私のプロジェクト内のすべてのファイルとフォルダがUTF-8を使用しているため、JavaFxギリシャ文字エンコーディング

start cmd /k java -Dfile.encoding=UTF-8 -jar Compiler.jar 

しかしこのdoesntのは、私には何の意味を行います。これまでのところ、それを修正する唯一の方法は、実行可能な.batファイルを作成し、この内部を貼り付けることですエンコーディング。私は日食のためのWindows 10、最新のEclipseとjavafxを使用しています。

ギリシャ文字は、プロジェクト内のいくつかのファイルに存在します(例:src/grammars/xx-file)。アプリケーションは問題を見つけて問題なく読み取ります。ギリシャ文字は、ラベルとアプリケーションのタイトルにも表示されます。私はjavafx環境のデフォルトのフォントを使用します。 たとえば、1つのファイルには次のものが含まれます。I - >#E |ε。プログラムにインポートすると、次のように変わります。I - >#E |Ξμ

また、.jarからこれらのファイルを読み込むために、InputStreamを使用する必要があります。それで、InputStreamへのエンコーディングを指定することは可能ですか?

+0

ギリシャ文字はどこですか?ソースファイル、リソースファイル、またはどこかからロードしていますか? '-Dfile.encoding'の値を指定しない限り、プラットフォームのデフォルトがファイル操作に使用されるので、これは通常のWindowsマシンでの動作です。 –

+0

あなたのJavaアプリケーションはフォントにアクセスできますか?コマンドライン(cmd/terminal)から実行して、エラーが出ていないかどうかを確認してから、質問を更新してください。 –

+0

コマンドラインに問題はありません。私は私の質問で指定されたコードでそれを実行し、それがうまく動作すると言ったように。 – CrystalScrew

答えて

1

誰でも興味があります。問題の解決策を見つけました。私は自分のアプリケーションを読み取ろう、そして、それは問題を修正することを実行して、すべてのファイルに

InputStreamReader inputReader = new InputStreamReader(streamIn, StandardCharsets.UTF_8);

を追加しました。ですから、実行可能な.jarファイルはデフォルトでUTF-8エンコーディングを使用しておらず、読み込み段階でそれを指定する必要があります。

+0

これは決定的な方法です。デフォルトは、ユーザーが制御し、自由に変化するものです。 –