Код: Выделить всё
<?
setlocale(LC_ALL, 'ru_RU.UTF-8');
var_dump(preg_match('/^[а-я]+$/i', 'Привет'));
?>
int(0)

Код: Выделить всё
<?
setlocale(LC_ALL, 'ru_RU.UTF-8');
var_dump(preg_match('/^[а-я]+$/i', 'Привет'));
?>
int(0)
Код: Выделить всё
u (PCRE_UTF8)
Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблоны обрабатываются как UTF8 строки. Модификатор u доступен в PHP 4.1.0 и выше для Unix-платформ, и в PHP 4.2.3 и выше для Windows платформ. Валидность UTF8 в шаблоне проверяется начиная с PHP 4.3.5.
Код: Выделить всё
<?
setlocale(LC_ALL, 'ru_RU.UTF-8');
var_dump(preg_match('/^[а-я]+$/ui', 'Привет'));
var_dump(preg_match('/^\w+$/ui' , 'Привет'));
?>
int(1)
int(0)
не не не, про это я знаю и писал выше. Мне другое интересно — почему множество \w не работает с UTF-8, причём ни в какую.thefree писал(а):может поможет http://forum.ixbt.com/topic.cgi?id=24:40663
какую систему?ADRE писал(а):надо сиситему в целом на utf-8 перетягивать
http://ru2.php.net/manual/ru/ini.core.p ... lt-charsetADRE писал(а):в php.ini найди строчку default_charset и приравняй её к utf8 усе должно конкретно пахать
Код: Выделить всё
default_charset string
Начиная с версии 4.0b4, PHP всегда отправляет кодировку по умолчанию в заголовке Content-Type. Чтобы отключить отправку кодировки, просто установите её пустой строкой.
чего?...ADRE писал(а):особенно разница видна если работать, допустим, на бсд под кои8-р, файлы в формате cp1251 + обработка через пхп на utf-8
нет, просто есть функции, которые поддерживают локаль, а есть те, которые её не поддерживают. Функции preg_ поддерживают локаль, как и str. Это оговаривается отдельно. Например функция date не держит локаль, а функция strftime держит, хотя обе они являются функциями даты и времени.ADRE писал(а):не все функции корректно работают с локлью т.к. подразумевается что идет англицкий язык, а с ним намного меньше проблемм....
то есть ты хочешь сказать, что default_charset отвечает за ещё что-то недокументированное?ADRE писал(а):а то что высылается в браузер - это другое
Код: Выделить всё
<?
setlocale(LC_ALL, 'UTF-8', 'ru_RU.UTF-8');
var_dump( ini_get('default_charset') );;
var_dump(preg_match('/^[а-я]+$/ui', 'Привет'));
var_dump(preg_match('/^\w+$/ui' , 'Привет'));
?>
string(5) "UTF-8"
int(1)
int(0)
ADRE писал(а):он посылает в шапку!я имел ввиду к этому еще привязан функционал