Работают ли шрифты Java со всеми кодовыми точками Unicode?

Я пытаюсь прочитать все глифы, доступные в шрифте, в моем случае 547. Вот что я сделал до сих пор:

          private static String getCharacters(Font font) {
        final int glyphs = font.getNumGlyphs();
        System.out.println("Searching for " + glyphs + " glyphs!");
        int[] codePoints = new int[glyphs];
        int found = 0;
        for (int codePoint = Character.MIN_CODE_POINT; codePoint < Character.MAX_CODE_POINT
                && found < glyphs; codePoint++) {
            if (font.canDisplay(codePoint)) {
                codePoints[found++] = codePoint;
            }
        }
        System.out.println("Missing " + (font.getNumGlyphs() - found) + " glyphs!");
        return new String(codePoints, 0, found);
    }

И вот результат:

      Searching for 547 glyphs!
Missing 160 glyphs!

Что ж, проблема очевидна: куда пропали мои 160 знаков?

Для всех, кто пытается воспроизвести, я использую шрифт Cinzel Regular.

Заранее благодарю за любую помощь!

0 ответов

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