1
我正在開發應用程序,一切都很好。 應用程序假設支持英文和俄文。 英語工作正常,但是當我試圖與俄羅斯語言環境中啓動應用程序,我看到這一點:JavaFX應用程序顯示奇怪的符號,而不是俄語
https://yadi.sk/i/gj8TOziskGvzf
我加載語言從包中start()
方法:
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=Выберите папку в которой сгенерируется приложение
#...
出了什麼問題?
Java屬性文件[必須在ISO-8859-1編碼中。](http://docs.oracle.com/javase/8/docs/api/java/util/Properties.html#load-java .io.InputStream-)IDE通過顯示'\ u'轉義符作爲其相應的字符來「隱藏」這種趨勢。唯一可以確定的方法是用純文本編輯器打開它。您可能會發現JDK的[native2ascii](http://docs.oracle.com/javase/8/docs/technotes/tools/windows/native2ascii.html)工具可用於使用正確的轉義創建.properties文件。 – VGR
@VGR你是對的。謝謝。 Intellij將其保存爲UTF-8(文件 - >設置>文件編碼),我還沒有找到轉換'* .properties'文件的方法。所以我只是使用在線服務來轉換http://native2ascii.net/#,它工作。請回答這個問題 – raiym
但現在我有另一個問題,有時我看到這個:'無效的下一個大小(快):0x00007f71984bf9b0 ***'(如果persist會發布另一個問題) – raiym