Я просто приводил пример оптимальной структуры файла, а кодировку естественно, нужно учитывать. Функция для перекодировки из win-1251 в utf8 есть
ЗДЕСЬ.
На счет UpCase - думаю, можно написать функцию и для русских строк, но придется перебирать строку побайтно, большие строки будут обрабатываться дольше(хотя, возможно, стандартная функция работает так же).