JavaFX应用程序显示奇怪的符号而不是俄语

时间:2015-11-06 13:58:11

标签: java javafx localization

我正在开发应用程序,一切都很好。 应用程序假设支持英语和俄语。 英语工作正常,但当我尝试使用俄语语言环境启动应用程序时,我看到了:

https://yadi.sk/i/gj8TOziskGvzf

我在start()方法

中从bundle加载语言
    Locale.setDefault(new Locale("ru", "RU"));
    FXMLLoader loader = new FXMLLoader(this.getClass().getResource("view/sample.fxml"));
    loader.setResources(ResourceBundle.getBundle("bundles.MyBundle"));

在控制器中:

public class SingleSiteConfiguratorController implements Initializable {
    //....
    @Override
    public void initialize(URL url, ResourceBundle resourceBundle) {
        this.languageBundle = resourceBundle;
    }
   //....
   // And accessing
   private void someMethod() {
       String outputDir = languageBundle.getString("choose_output_folder");
   }
}

MyBandle_ru.properties

#...
choose_output_folder=Выберите папку в которой сгенерируется приложение
#...

有什么问题?

1 个答案:

答案 0 :(得分:2)

Java属性文件must be in the ISO-8859-1 encoding. IDE倾向于通过将\u转义显示为相应的字符来“隐藏”此文件。唯一可以确定的方法是在纯文本编辑器中打开它。

您可能会发现JDK的native2ascii工具对于使用正确的转义创建.properties文件非常有用。