Запускал это с PHP 5.3.13 на Windows и с PHP 5.3.10 на Ubuntu.
В браузерах Chrome 33.0.1750.154 и FF 26.0, которые правильно детектировали кодировку как UTF-8
<?php
header('Content-Type: text/html; charset=UTF-8');
$message = "вае№\n_п8bс!\n ии";
$message = preg_replace('/[^a-z0-9а-я\!]*/i', '', $message);
echo $message;
Выдает какую-то ерунду:
ваеп8b�!ии
Само собой, файл в кодировке UTF-8 без BOM. Браузер
Разумеется, использовал варианты с модификатором u, но лучше от этого не стало.
Использовал \w вместо a-z0-9 - не помогло.
Пробовал задать отдельно прописные буквы и отдельно строчные, чтоб избавиться от модификатора i - безрезультатно.
Как это лечить или чем заменить?