Работают ли шрифты 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.
Заранее благодарю за любую помощь!