Страница 1 из 1
UTF-8 vs PHP5
Добавлено: 2009-06-26 5:25:25
zg
Код: Выделить всё
<?
setlocale(LC_ALL, 'ru_RU.UTF-8');
var_dump(preg_match('/^[а-я]+$/i', 'Привет'));
?>
int(0)

Это у всех так с UTF8? или только у меня?
Re: UTF-8 vs PHP5
Добавлено: 2009-06-26 6:30:01
zg
http://ru2.php.net/manual/ru/reference. ... ifiers.php
Код: Выделить всё
u (PCRE_UTF8)
Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблоны обрабатываются как UTF8 строки. Модификатор u доступен в PHP 4.1.0 и выше для Unix-платформ, и в PHP 4.2.3 и выше для Windows платформ. Валидность UTF8 в шаблоне проверяется начиная с PHP 4.3.5.
Re: UTF-8 vs PHP5
Добавлено: 2009-06-26 8:01:04
thefree
про перл нагнали, он и так шаблон обрабатывает как utf8
Re: UTF-8 vs PHP5
Добавлено: 2009-06-26 11:02:16
zg
щас другая проблема
Код: Выделить всё
<?
setlocale(LC_ALL, 'ru_RU.UTF-8');
var_dump(preg_match('/^[а-я]+$/ui', 'Привет'));
var_dump(preg_match('/^\w+$/ui' , 'Привет'));
?>
int(1)
int(0)

Re: UTF-8 vs PHP5
Добавлено: 2009-06-26 22:18:00
zg
собрал шестой пых... таже хрень
Re: UTF-8 vs PHP5
Добавлено: 2009-06-28 1:44:11
thefree
Re: UTF-8 vs PHP5
Добавлено: 2009-06-28 6:36:55
zg
не не не, про это я знаю и писал выше. Мне другое интересно — почему множество \w не работает с UTF-8, причём ни в какую.
Re: UTF-8 vs PHP5
Добавлено: 2009-06-28 11:58:21
ADRE
некоторые функции в чем-то другом работаю анси -/, у меня некоторые функции отробатывают в 1252, нектороые в кои8.....
и также с модификаторами, тянутся от куда-то со странной кодировкой и не срабатывают, надо сиситему в целом на utf-8 перетягивать
Re: UTF-8 vs PHP5
Добавлено: 2009-06-28 13:20:43
zg
ADRE писал(а):надо сиситему в целом на utf-8 перетягивать
какую систему?
Re: UTF-8 vs PHP5
Добавлено: 2009-06-29 14:22:20
ADRE
да для работы чтоб все едино было, php, локаль бсд, а то проблеммы с русккими букавками =( ну и естественно бд всякие, наоролси =/ папки при создании из пхп каракули.... да и собственно обработка входных файлов на скачивание, англицкий нормально, русский - каракули koi8-r ))), а если чисто для сайта, то достаточно пхп->UTF, И сами файлы _>utf и всё
Re: UTF-8 vs PHP5
Добавлено: 2009-06-29 14:23:36
ADRE
в php.ini найди строчку default_charset и приравняй её к utf8 усе должно конкретно пахать
Re: UTF-8 vs PHP5
Добавлено: 2009-06-29 14:57:20
zg
ADRE писал(а):в php.ini найди строчку default_charset и приравняй её к utf8 усе должно конкретно пахать
http://ru2.php.net/manual/ru/ini.core.p ... lt-charset Код: Выделить всё
default_charset string
Начиная с версии 4.0b4, PHP всегда отправляет кодировку по умолчанию в заголовке Content-Type. Чтобы отключить отправку кодировки, просто установите её пустой строкой.
и как это должно помочь?

Re: UTF-8 vs PHP5
Добавлено: 2009-06-30 9:09:35
ADRE
очень просто - это есть опора обработки функций, если ты зальешь в переменную которая работает с ISO-8859 допустим utf или cp1251, ТО она будет обрабатываться от кодировки которая вставлена в ини файле, сам заметил глюк, что от локали не все функции отрабатывают от той кодировки которая проставлена... т.е. функция будет интерпретировать \w как принадлежищию к символам из кодировки которая установлена в ini файле....
особенно разница видна если работать, допустим, на бсд под кои8-р, файлы в формате cp1251 + обработка через пхп на utf-8, если не создавать папок на системе (предварительно не засунув выходные данные, допустим в иконв, либо еще как) русские символы трансформируются как угодно, если даже входные в пхп данные предварительно конвертнуть в нужную кодировку, то после обработки переменных, кодировка превратится в кодировку указанную либо в локале либо в дефаулт_чарсет, не все функции корректно работают с локлью т.к. подразумевается что идет англицкий язык, а с ним намного меньше проблемм.... а то что высылается в браузер - это другое.... сам напаролся когда после str функции пхп у меня весь utf измененный iconv мутировал и не отрабатывало как надо...
вообще посмотри как пролемму с utf-8 грамотно решили в wordpress, там как-то все просто было.... причем расписано помоему в конфигурационном файлу в папке админовской
Re: UTF-8 vs PHP5
Добавлено: 2009-06-30 10:51:58
zg
ADRE писал(а):особенно разница видна если работать, допустим, на бсд под кои8-р, файлы в формате cp1251 + обработка через пхп на utf-8
чего?...
ADRE писал(а):не все функции корректно работают с локлью т.к. подразумевается что идет англицкий язык, а с ним намного меньше проблемм....
нет, просто есть функции, которые поддерживают локаль, а есть те, которые её не поддерживают. Функции preg_ поддерживают локаль, как и str. Это оговаривается отдельно. Например функция date не держит локаль, а функция strftime держит, хотя обе они являются функциями даты и времени.
ADRE писал(а):а то что высылается в браузер - это другое
то есть ты хочешь сказать, что default_charset отвечает за ещё что-то недокументированное?
собственно, как и следовало ожидать
Код: Выделить всё
<?
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)
Re: UTF-8 vs PHP5
Добавлено: 2009-07-01 2:58:37
ADRE
он посылает в шапку!

я имел ввиду к этому еще привязан функционал
Re: UTF-8 vs PHP5
Добавлено: 2009-07-01 5:11:00
zg
ADRE писал(а):он посылает в шапку!

я имел ввиду к этому еще привязан функционал

www — это клиент-серверная технология. Фукции preg_ работают криво на сервере, а default_charset нужна только для клиента.
Re: UTF-8 vs PHP5
Добавлено: 2009-07-08 6:32:24
ADRE
да забей у меня короче преги так обрабатываются и незнаю почему )