Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение старого архива (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/)
-   -   Непонятный баг с "длинной" символа (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/neponyatnyj-bag-s-dlinnoj-simvola-392122/)

Guest 16.10.2011 16:42

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


Часовой пояс GMT, время: 07:10.


© www.otvetnemail.ru - Форум вопросов и ответов.