На входе взятый из базы данных текст в кодировке УТФ-8.Втексте находим все слова так:
$text = "ТЕКСТ";
preg_match_all("/[а-яёА-ЯЁ]{4,}/i",$text,$res,PREG_PATTERN_ORDER);
на выходе, в переменной $res[0][$i] за место слов имеем кракозябры:
оп�
осам
или
ок�
ппам
ом
едлагаем�
оп�
осника�
исп�
ем�
ас�
пос�
авлен
си�
жес�
на покупном хосте все нормально, а на локальном вот такая беда.
В чем может быть проблема?
Спустя 35 минут, 25 секунд (14.10.2010 - 23:25) kovaldm написал(а):
В самой БД есть кракозябры?
Спустя 1 минута, 52 секунды (14.10.2010 - 23:27) aH6y написал(а):
Цитата (kovaldm @ 14.10.2010 - 23:25) |
В самой БД есть кракозябры? |
откуда им там быть? проблемма в кодировке...
Спустя 4 минуты, 59 секунд (14.10.2010 - 23:32) kovaldm написал(а):
Кракозябры не могут попасть в БД?
И еще. Я может чего-то не понял, но как функция выдает строки < 4 символов.
И еще. Я может чего-то не понял, но как функция выдает строки < 4 символов.
Спустя 14 минут, 28 секунд (14.10.2010 - 23:46) aH6y написал(а):
kovaldm
в бд может попасть всё, но тут скорее всё в кодировках.
возможно т.к. у utf-8 каждый символ занимает не один байт, а два.
меняешь кодировку вот так:
в бд может попасть всё, но тут скорее всё в кодировках.
возможно т.к. у utf-8 каждый символ занимает не один байт, а два.
меняешь кодировку вот так:
$new_content = iconv('utf-8', 'cp1251', $content);
$new_pattern = iconv('utf-8', 'cp1251', $pattern);
Спустя 10 минут, 1 секунда (14.10.2010 - 23:56) kovaldm написал(а):
Цитата (aH6y @ 14.10.2010 - 20:46) |
возможно т.к. у utf-8 каждый символ занимает не один байт, а два. |
У меня в utf-8 не находит.
Спустя 8 минут, 22 секунды (15.10.2010 - 00:05) aH6y написал(а):
kovaldm
оно вообще странно с utf-8 работает. можешь поискать воть
оно вообще странно с utf-8 работает. можешь поискать воть
Спустя 11 минут, 33 секунды (15.10.2010 - 00:16) kovaldm написал(а):
Ха-ха. Гугль для ленивых.
Спустя 3 минуты, 36 секунд (15.10.2010 - 00:20) dima написал(а):
спасибо, действительно косяк в регепсе
нада так:
/[а-яёА-ЯЁ]{4,}/iu
Спустя 20 минут, 20 секунд (15.10.2010 - 00:40) aH6y написал(а):
dima
пожалуйста
пожалуйста
Спустя 19 часов, 35 минут, 43 секунды (15.10.2010 - 20:16) ApuktaChehov написал(а):
Так попробуйте:
preg_match_all("/[а-яёА-ЯЁ]{4,}/iu",$text,$res,PREG_PATTERN_ORDER);
Спустя 44 минуты, 7 секунд (15.10.2010 - 21:00) aH6y написал(а):
ApuktaChehov
вот ответ он сам нашел)
вот ответ он сам нашел)
Цитата |
спасибо, действительно косяк в регепсе нада так: /[а-яёА-ЯЁ]{4,}/iu |