preg_replace проблема с регистром кирилицы под *nix

punchos

Новичок
preg_replace проблема с регистром кирилицы под *nix

Здравствуйте!
нужна помощь...есть такой код
PHP:
$str="Я был когда то странной, игрушкой безымянной.";
$str=preg_replace('|(был)|i',"не$1",$str);
echo $str."<br>";

$str="Я Был когда то странной, игрушкой безымянной.";
$str=preg_replace('|(был)|i',"не$1",$str);
echo $str."<br>";

$str="Я Was когда то странной, игрушкой безымянной.";
$str=preg_replace('|(was)|i',"не$1",$str);
echo $str."<br>";
в Винде отработывает как должен, а именно везде делает подстановку
Я небыл когда то странной, игрушкой безымянной.
Я неБыл когда то странной, игрушкой безымянной.
Я неWas когда то странной, игрушкой безымянной.
а вот под *nix, не так как должен
Я небыл когда то странной, игрушкой безымянной.
Я Был когда то странной, игрушкой безымянной. //именно в этой строчке не срабатывает замена
Я неWas когда то странной, игрушкой безымянной.
очевидно что проблема с регистром букв у кирилицы, хотя модификатор i ведь стоит...а вот как от нее избавиться не знаю...помогите
пробовал делать с str_ireplace...код приводить не буду...но там та же самая беда
 

punchos

Новичок
to MiRacLe : пасибо помогло
setlocale(LC_ALL, 'ru_RU.CP1251');
to FB3 : не u не подходит у меня не UTF, а CP1251
 
Сверху