Typo Live Search. Решение проблемы поиска в кириллице

Posted by Cooper Tue, 01 Aug 2006 20:51:00 GMT

После установки typo из trunk (rev.1055) к моему удивлению поддержка UNICODE работала нормально во всех проверенных мной режимах. Огорчило только то, что в “живом поиске” русские буквы трансформировались в последовательность типа %uxxxx (см. рисунок) и соответственно поиск на русском языке не работал. После небольшого исследования оказалось, что “портит” кирилицу javascript функция escape(). Мной были рассмотрены разные варианты решения проблемы, в том числе использование класса UString из библиотеки ICU4R - ICU Unicode bindings for Ruby. Поиск по различным форумам/блогам дал свой рещзультат. Было найдено упоминание о похожей ситуации и рекомендовалось использовать encodeURIComponent() вместо escape(). И это действительно помогло. Непосредственно лечить проблему надо так. В файле /app/views/shared/_search.rhtml строку

 :with => "'q=' + escape($F('q'))" -%>

заменить на

 :with => "'q=' + encodeURIComponent($F('q'))" -%>

до исправления

и после…

Также проверил на корректность работы Live Search с китайским языком, тест прошёл успешно:

Posted in , ,  | Tags , , ,  | 2 comments

Comments

  1. Avatar huNTer said 7 days later:

    Очень странно… У меня вообще подобных проблем с русским Live Search не возникало с версии 2.6.0… Сейчас стоит 4.0.0 из Gems’ов - никаких проблем

  2. Avatar huNTer said 7 days later:

    Хотя вру… но в 2.6.0 такой проблемы не было!

(leave url/email »)

   Comment Markup Help Preview comment