Страница 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
thefree писал(а):может поможет http://forum.ixbt.com/topic.cgi?id=24:40663
не не не, про это я знаю и писал выше. Мне другое интересно — почему множество \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. Чтобы отключить отправку кодировки, просто установите её пустой строкой.
и как это должно помочь? :unknown:

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
чего?... :shock:
ADRE писал(а):не все функции корректно работают с локлью т.к. подразумевается что идет англицкий язык, а с ним намного меньше проблемм....
нет, просто есть функции, которые поддерживают локаль, а есть те, которые её не поддерживают. Функции preg_ поддерживают локаль, как и str. Это оговаривается отдельно. Например функция date не держит локаль, а функция strftime держит, хотя обе они являются функциями даты и времени.
ADRE писал(а):а то что высылается в браузер - это другое
то есть ты хочешь сказать, что default_charset отвечает за ещё что-то недокументированное?

собственно, как и следовало ожидать :bn:

Код: Выделить всё

<?

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 писал(а):он посылает в шапку! =) я имел ввиду к этому еще привязан функционал
:smile: www — это клиент-серверная технология. Фукции preg_ работают криво на сервере, а default_charset нужна только для клиента.

Re: UTF-8 vs PHP5

Добавлено: 2009-07-08 6:32:24
ADRE
да забей у меня короче преги так обрабатываются и незнаю почему )