In Turkish, the uppercase version of 'i' is 'İ' (not 'I'). The problem is that the Turkish and the "ordinary" Latin 'i' is the same character (the same Unicode code point). If you upcase the 'i' in a Turkish context using the default settings, you might get the wrong letter.
In Java, you can use the Locale class to get this right:
Locale tr = new Locale("tr"); //Turkish
String trI = "i".toUpperCase(tr);
The above code outputs
(and not 'I').
Be aware that comparing Turkish strings may not work flawlessly. See also this post.
You should also notice that changing the
Localedoes other things as well. For instance you might end up getting error messages in Turkish...