Introduction
Text Rendering involves both the handling of Unicode standards regarding charactor encoding as well as the generation and rendering of the glyphs. The sub-chapters here explain the basic principles.
Character Encodings
character encoding system consists of a code that pairs each character from a given repertoire with something else such as a bit pattern, sequence of natural numbers, octets, or electrical pulses (Source: Wikipedia).
Unicode is the most important standard for character encodings and defines (among other things) the mapping of a character to a Unicode code point (bit pattern):
All texts which are rendered within the TextEngine have to be of type TChar*. Text in TChar* have to be encoded in UTF-8. UTF-8 uses a varying number of TChars to encode one glyph. E.g. a UTF-8 encoded string with special characters: "äÄöÖüÜ߀" consists of 8 glyphs but of 17 bytes because several of these special characters are encoded in more than one byte.
The methods FeatStd::String::GetCharCount() and FeatStd::String::GetCodePointCount() can be used to get the numbers as explained in the example above. An instance of FeatStd::String class can be constructed with TChar* by the constructor FeatStd::String::String(const TChar *).
Char data type must not be used for I18N text and always maps to ASCII.
Complex Script Languages
A complex script is a writing system which requires complex transformation of glyphs like substitution and positioning. Examples of such writing systems are arabic, hebrew and thai. Complex transformations include

Above the characters as they are written and below as they are displayed.
Text Rendering - Functional Steps
Text Rendering involves the following functional steps:
Glyph Rendering
Takes a single code point and font metrics to render the according glyph. The Freetype font engine for example takes a code point and outputs a 8 bit alpha.
Shaping
Shaping is the transformation from logical to display presentation of a text. The Shaping process is reponsible for considering complex scripts. The Shaping process is applied on paragraph level.
GPOS/GSUB Tables
OpenType fonts may include GSUB (glyph substitution) and GPOS (glyph positioning) tables.
The GSUB table contains (among other things)
The GPOS table contains (among other things)
A Candera feature define is available in CMake to select between the 3rd party software components ComplexScriptLib and HarfBuzz for text shaping.
Layouting
Layout text that has been shaped. Typical operations: