если cp1251
то setlocale
здесь есть большое НО. если мы не на своем серваке, а на шареде, то способ очень ненадежный. локаль действует на систему в целом, а не только на текущий пользовательский request. то есть ты меняешь локаль и это влияет на твоих соседей, они меняют - влияет на тебя )))
к слову, функции mb_* умеют работать и с однобайтными кодировками и при этом не зависят от локали.