Гуджаратский текст Unicode на JLabel в формате HTML не работает (квадрат) - PullRequest
0 голосов
/ 09 мая 2018

На моих JLabel / JButton компонентах и ​​т. Д. Я использую HTML для форматирования текста. Это работает очень хорошо на всех языках, кроме гуджарати.

Я использую обычные буквы ASCII для кодирования букв гуджарати, например ::

\u0aae\u0ac1\u0ab6\u0acd\u0a95\u0ac7\u0ab2\u0ac0 

Будет декодировать до:

મુશ્કેલી

Когда я помещаю текст в JLabel:

myJLabel.setText("\u0aae\u0ac1\u0ab6\u0acd\u0a95\u0ac7\u0ab2\u0ac0") 

Текст хорошо отдает Гуджарати.

Но когда я включаю в него html-теги для форматирования текста, он больше не работает, и отображаются квадратные прямоугольники (все остальные языки хорошо отображаются с помощью html, включая арабские и кириллические буквы). Как только я использую html-теги с гуджаратскими буквами, это больше не работает и выводятся квадратные прямоугольники (неизвестные символы):

myJLabel.setText("<html>\u0aae\u0ac1\u0ab6\u0acd\u0a95\u0ac7\u0ab2\u0ac0<\html>")

Я уже использовал несколько подсказок, найденных для этой проблемы, например, следующие, но безуспешно:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

1 Ответ

0 голосов
/ 09 мая 2018

Используйте один из шрифтов, показанных в выходных данных этого кода:

import java.awt.Font;
import java.awt.GraphicsEnvironment;

public class GujaratiFonts {

    public static void main(String[] args) {
        String gujaratiText
                = "\u0aae\u0ac1\u0ab6\u0acd\u0a95\u0ac7\u0ab2\u0ac0";
        Font[] fonts = GraphicsEnvironment.
                getLocalGraphicsEnvironment().getAllFonts();
        int count = 0;
        for (Font font : fonts) {
            if (font.canDisplayUpTo(gujaratiText) < 0) {
                System.out.println(font.getName() + " can print this.");
                count++;
            }
        }
        System.out.println("Supported Fonts: \t" + count);
        System.out.println("Installed Fonts: \t" + fonts.length);
    }
}

Результаты Здесь

Arial Unicode MS can print this.
Nirmala UI can print this.
Nirmala UI Bold can print this.
Nirmala UI Semilight can print this.
Supported Fonts:    4
Installed Fonts:    440

Примечание

Если только приложение. предоставляет Font, подходящий для отображаемого языка, имеет смысл запустить этот код и выбрать уже установленный шрифт, каждый раз, когда приложение. работает . Установленные шрифты будут меняться на разных компьютерах и со временем.

...