Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблема с UTF-8 и извлечение корня из слова.


Автор: Elfet 5.2.2009, 13:22
Всем привет! 
Есть такой код: http://forum.dklab.ru/viewtopic.php?t=14279&
И мне не удаётся работать с ним через utf8, 
Может мне кто-нибудь подсказать как это исправить?
У меня под UTF-8 выдаёт вот что: ������� 

Заранее спасибо!

Автор: skyboy 5.2.2009, 13:36
чтоб работал preg_* как надо, надо к регуляркам цеплять "u"
чтоб работали функции str_* надо установить локаль при помощи http://php.net/setlocale: навроде "setlocale('ru_RU.UTF8');"

Автор: Elfet 5.2.2009, 13:40
skyboy, нет, не помогло - выдаёт: » 2�������

Автор: SamDark 5.2.2009, 14:00
Elfet, 
Стеммер портера — это как-то не очень серьёзно.

Есть более мощные решения, например http://sourceforge.net/projects/phpmorphy/.

Небольшой туториал http://valera.ws/2007.09.05~morpho_search_in_mysql/.

Автор: Elfet 5.2.2009, 14:04
Да мне нужно как можно проще. Может быть можно как-то приставки и окончания обрезать? 

Автор: skyboy 5.2.2009, 14:10
Цитата(Elfet @  5.2.2009,  12:40 Найти цитируемый пост)
не помогло

исходный код(все эти строковые константы) сохранены в utf8?

Автор: Elfet 5.2.2009, 14:23
skyboy, они получены через запрос, но в utf8. Я проверил функцией is_utf8()

Автор: SamDark 5.2.2009, 14:49
Elfet, 
Портер в некоторых случаях очень неаккуратно получает корень.

Автор: Elfet 5.2.2009, 14:54
Нашёл я виновника smile - вот он, в этом коде в самом начале: $word = strtolower($word);

Добавлено через 29 секунд
SamDark, это ладно. у меня не поиск - не критично smile

Добавлено через 47 секунд
Хотя статья интересная, спасибо smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)