Typo Live Search. Решение проблемы поиска в кириллице
Posted by Cooper Tue, 01 Aug 2006 20:51:00 GMT
После установки typo из trunk (rev.1055) к моему удивлению поддержка UNICODE работала нормально во всех проверенных мной режимах. Огорчило только то, что в “живом поиске” русские буквы трансформировались в последовательность типа %uxxxx (см. рисунок) и соответственно поиск на русском языке не работал. После небольшого исследования оказалось, что “портит” кирилицу javascript функция escape(). Мной были рассмотрены разные варианты решения проблемы, в том числе использование класса UString из библиотеки . Поиск по различным форумам/блогам дал свой рещзультат. Было найдено упоминание о похожей ситуации и рекомендовалось использовать encodeURIComponent() вместо escape(). И это действительно помогло. Непосредственно лечить проблему надо так. В файле /app/views/shared/_search.rhtml строку
:with => "'q=' + escape($F('q'))" -%>
заменить на
:with => "'q=' + encodeURIComponent($F('q'))" -%>
до исправления
и после…
Также проверил на корректность работы Live Search с китайским языком, тест прошёл успешно:
Очень странно… У меня вообще подобных проблем с русским Live Search не возникало с версии 2.6.0… Сейчас стоит 4.0.0 из Gems’ов - никаких проблем
Хотя вру… но в 2.6.0 такой проблемы не было!