Добрый вечер! Пишу простенькую поисковую систему для своего сайта, и столкнулся со следующей проблемой:Есть скрипт, который пробегается по всем статьям и индексирует все существующие слова, а также связывает их со статьями, в которых они встречались. Причём в одно из полей записывается положение начала предложения, в котором встречалось это слово. Например: "Привет друг. Как дела?". Для слова "привет" и "друг" эта позиция будет 0, а для "как" и "дела" 13 соответственно.Есть другой скрипт - клиентский. Который также выполняет поиск, но уже по связям, затем вытаскивает из БД статью, и с некоторой позиции до конца предложения (конец строки или "." или "?") выводит строку. Но происходит какой-то баг: для вытащенной в клиентском скрипте статьи позиция "13" это уже совсем не начало слова "Как" в предложении, а чуть раньше.. Получается небольшой сдвиг, и при запросе на "дела" в лучшем случае может вывестить что-то типа "руг. Как дела?". Как будто в клиентском скрипте на один печатаемый символ выделяется меньше бит.При попытке вывести в серверном скрипте первый символ строки $string ( echo $string[0]; ) для "Привет" получаем "П", а в клиентском "", при этом если вывести строку полностью, результат и там и там будет одинаковым - "Привет".Подозреваю, что где-то накосячил с кодировками. Но где и как? Текст везде читабельный.
|