printf ("%c\n", tolower('I'));
This produces the character code 0xFD, instead of the lowercase 'i', 0x69.
In /usr/share/locale/locale.alias we have:
In http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-9.TXT we have:
0x49 0x0049 # LATIN CAPITAL LETTER I
Code 0x49 in iso-8859-9 is still latin uppercase 'I', unicode 0x0049, and
its lowercase equivalent is still 0x0069, code 0x69, so what is tolower()
Read the mapping again, you'll find that Turkish has also
LATIN CAPITAL LETTER I WITH DOT ABOVE (that is toupper('i'))
and LATIN SMALL LETTER DOTLESS I (that is tolower('I')).