0

一些 Unicode 字符在 JavaFX 11 中被反向呈现。

  • 语言:泰语

  • 字体:Pyidaungsu。点击此链接下载

  • 要呈现的文本:ၸေႃႇၵျီႇ
  • 操作系统:Windows 10
  • 程序代码指南:JavaFx 11 入门
  • 程序代码:

    @Override
    public void start(Stage stage) {
        String javaVersion = System.getProperty("java.version");
        String javafxVersion = System.getProperty("javafx.version");
        Label l = new Label("Hello, JavaFX " + javafxVersion + ", running on Java " + javaVersion + ".");
        l.setFont(new Font("Pyidaungsu", 20));
    
        String problemString = "ၸေႃႇၵျီႇ";
        String fixedString = Normalizer.normalize(problemString, Normalizer.Form.NFC);
    
        Label l2 = new Label(fixedString);
        l2.setFont(new Font("Pyidaungsu", 30));
        Scene scene = new Scene(new VBox(l, l2), 640, 480);
        stage.setScene(scene);
        stage.show();
    }
    
  • 编译命令:javac --module-path %PATH_TO_FX% --add-modules=javafx.controls,javafx.fxml HelloFX.java -encoding UTF-8

  • 结果:

运行结果

前两个字符被反向渲染。JavaFX 8 中的情况也是如此。

4

0 回答 0