javafx странные символы пространства на арабском языке

Использование приведенного ниже кода для записи текста текстового потока javafx на экран приводит к появлению странных символов, при этом пробелы между словами запутываются. смотрите скриншот ниже.

эта проблема возникает только в моей Mac OS X OS X не Debian OS. замена пробелов на английские пробелы ничего не делает.

Скриншот:

Код:

short_hadith = "  ‏.‏ قَالَ فَصِرْتُ إ          ِلَى الَّذِي قَ      صلى الله عليه وسلم   ‏.‏";
text1=new Text(sanad_0);
text1.setStyle("-fx-font-size: 59; -fx-fill: white; ");
text2=new Text( short_hadith + "\n");
text2.setStyle("-fx-font-size: 59; -fx-fill: goldenrod ; ");
text3=new Text(hadith_reference + "\n");
text3.setStyle("-fx-font-size: 25; -fx-fill: white; ");
text4 = new Text(ar_moon_notification + "\n");
text4.setStyle("-fx-font-size: 40; -fx-fill: white;  ");
text5 = new Text("يرجى ملاحظة أن هذا يقوم على حسابات التقويم");
text5.setStyle("-fx-font-size: 25; -fx-fill: white;  ");                
hadith_flow.setTextAlignment(TextAlignment.RIGHT);
hadith_flow.setStyle("-fx-line-spacing: 20px; fitToWidth: true;");      
hadith_flow.getChildren().addAll(text1, text2,text3, text4);

1 ответ

Решение

Проблема в семействе шрифтов. если это по умолчанию 'System', измените его на любое семейство шрифтов, поддерживающее арабский язык, например: 'Arial'.

Вы можете добавить для всего проекта в файле CSS, как это: * { -fx-font-family: 'Arial'; }

У меня была такая же проблема и я ее исправил.

Другие вопросы по тегам