á、í、čなどの発音記号を使用して表示する際に問題があります .propertiesファイルをISO 8599-1のUTF-8に設定しましたが、次のコードを実行すると私は結果を望んでいない。JavaFX多言語.propertiesファイルのエンコーディング
メインクラス:
@Override
public void start(Stage primaryStage) throws Exception{
FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setResources(ResourceBundle.getBundle("bundles.language_sk", new Locale("sk", "SK")));
Parent root = fxmlLoader.load(getClass().getResource("/view/loginFrame.fxml"));
primaryStage.setTitle("Login");
Scene scene = new Scene(root, 563, 580);
primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.show();
}
ログインフレームコントローラクラス:
@Override
public void initialize(URL location, ResourceBundle resources) {
ResourceBundle bundle = ResourceBundle
.getBundle("bundles.language_sk", new Locale("sk", "SK"));
setLoginBtnText(bundle);
}
public void setLoginBtnText(ResourceBundle bundle){
loginBtn.setText(bundle.getString("loginButton"));
}
language_sk.propertiesファイル:
#LOGIN FRAME
.
.
loginButton=Prihlásiť
.
.
結果:
ご覧のとおり、.propertiesファイルを使用してログインボタンのテキストを設定しようとしましたが、文字が混乱しています。
私はsetLoginBtnText
方法でこのコードを使用する場合が:
public void setLoginBtnText(ResourceBundle bundle){
String val = bundle.getString("loginButton");
try {
loginBtn.setText(new String(val.getBytes("ISO-8859-1"), "UTF-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
、ボタン上のテキストは完全に罰金です。自分のプロジェクト全体にグローバルなエンコード設定をいくつか設定して、各クラスの各コンポーネントでエンコーディングを指定する必要はありませんか?ありがとう。