Hello, Alexey Markov! On Wed, Sep 07, 2011 at 01:57:25PM +0400 [email protected] wrote about "[freebsd] Странный глюк с локалью UTF-8 в 6.4": > Приветствую! > > В процессе отлавливания одного бага в PHP-шном модуле наткнулся > на крайне загадочное поведение фришной UTF-8 локали. Но лучше > один раз показать: > > FreeBSD 6.4-RELEASE-p11 i386, PHP 5.3.8, маленький тестовый скрипт: > > =========Beginning of the citation============== > #!/usr/local/bin/php > > <?php > > $src = "абвгдеёжзиклмнопрстуфхцчшщъыьэюя"; > > echo preg_replace('/[ \t]+/', " ", $src) . "\n"; > echo preg_replace('/\s+/', " ", $src) . "\n"; > echo preg_replace('/\s\s+/', " ", $src) . "\n"; > echo preg_replace(array('/[[:blank:]]+/', '/\s+/'), " ", $src) . "\n"; > echo preg_replace(array('/[[:blank:]][[:blank:]]+/', '/\s\s+/'), " ", $src) > . "\n"; > =========The end of the citation================ > > Если зайти на сервер под локалью KOI8-R и запустить этот скрипт, > то получим 5 идентичных строчек с русским алфавитом. Если же этот > скрипт запустить под локалью UTF-8, то во второй и четвёртой строчке > буква "х" превратится в псевдографику с пробелом.
Зайти под локалью и запустить -- это как? Скрипт один и тот же, сохраненный в файле на сервере или каждый раз под новой локалью создавать новый скрипт и запускать? > В любой другой кодировке данный баг не проявляется, на 8-ке и Линуксах > также всё нормально. Очевидно, дело в 6-ке, но в силу целого ряда причин > обновить данный сервер до 8-ки пока не представляется возможным, а баг > этот ломает работу нужного плагина для Вики. Оформлять PR смысла нет, > так как поддержка 6-ки официально прекращена. > > В общем, прошу совета - что можно сделать, чтобы обойти на 6-ке этот баг? > "Выкинуть 6-ку, PHP или Вику" проблему, к сожалению, не решают. -- Lystopad Olexandr
