Skip to content
Ivailo Monev edited this page Sep 8, 2023 · 32 revisions

Unicode support is required in several parts of the project, that includes characters properties recognition (QChar), string normalization and case folding (QString), URL from and to ACE/Puny encoding (QUrl), fonts loading based on scripts (QFontDatabase) , text shaping (QTextEngine, QTextlayout and bundled Harfbuzz), locales (QLocale) and UTF-8/UTF-16/UTF-32 text codecs (QTextCodec).

Fonts loader currently support Unicode v15.0 however the text shaper (Harfbuzz) supports only up to v5.0 lacking support for some line, grapheme, word and sentence break categories introduced in later versions of the standard. Locales data is based on CLDR v43.1. All other use ICU for manipulating and obtaining properties of characters.

If you want to test and possibly improve the Unicode support having the right fonts is essential. Installing GNU Unifont Glyphs on your system will ensure most of the required glyphs will be loaded and rendered. Unicode Common Locale Data Repository provides data you can test any modifications you make and verify they are correct.

References: