UTF-8 - это присвоение кодов символам. Для удобства было принято решение, что младшие 127 кодов одинаковы в ASCII и UTF-8. Для всех символов коды различаются.
Шрифты UTF-8 имеют карту символов (cmap), которая присваивает кодам Юникод их глифы. Существует очень мало шрифтов, которые охватывают большие части диапазона юникода (Arial Unicode и Gentium, я знаю, есть некоторые другие), и чтобы получить полное покрытие в решении рендеринга, вы должны смешать шрифты.
Чтобы иметь возможность отображать произвольные тексты Unicode, вам необходимо создать набор шрифтов с одним шрифтом по умолчанию и резервными шрифтами для символов Unicode, которые не содержат шрифта по умолчанию. Назад к Java и вашей текстовой панели: если вы выбираете шрифт для определенной части текста в вашей текстовой панели, это означает только то, что для визуализации текстового глифа используются выбранный шрифт. Но сам текст никак не связан со шрифтом.
Итак, у вас есть два варианта:
- Вы не просто сохраняете текст UTF-8,
но и информация о
выбранный шрифт или
- Дальше интереснее:
Вы сохраняете текст просто как UTF-8
и применить шрифты после загрузки
текст в вашу текстовую панель!