一些 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 中的情况也是如此。