Autofaucets.ru - автоматический сборщик криптовалюты с кранов!

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