Учим матчасть. Символ - набор один, два или более байт. Графическое отображение (верхний регистр, нижний, цифра, иероглиф) зависит от символьной таблицы, в которой этот символ просмотривается. Стандартные функции умеют работать только с ASCII.
В принципе, не так всё плохо, мне на самом деле можно ascii ограничиться. Если знаки или цифры то - считаем что lower. поэтому PHP: function islower($ch) { return (strtolower($ch) == $ch); } Чёто я сам себе проблем понавыдумывал