scusate se mi intrometto
perchè non usare
setlocale(LC_ALL, 'it_IT');
o cosa simile?