protected static function compileUnencodedCharacters()
    {
        foreach (static::$compositions as $composition) {
            $composition_characters = self::${$composition};

            $delta = array_diff($composition_characters, static::$unencoded_characters);

            if (!empty($delta)) {
                static::$unencoded_characters = array_merge(static::$unencoded_characters, self::${$composition});
            }
        }
    }