Описание проблемы:
На Revo есть сайт 2.4.2. Бабель Установлен в трех контекстах (Ru, Ua, En). Установлен SimpleSearch 1.9.2. Проблема заключается в невозможности поиска кириллического слова (ничего не найдено). Латинский поиск правильный. Везде установлен UTF-8.
Ожидаемый результат:
Начните поиск русских символов.
Форма:
[[!SimpleSearchForm? &method=`GET` &landing=`[[++searchlid]]` &tpl=`lisearch` &searchIndex=`query`]]
searchlid — разные для каждого контекста.
lisearch:
<form class="search" action="[[~[[+landing:default=`[[*id]]`]]]]" method="[[+method:default=`get`]]">
<input type="text" placeholder="[[%babel.placeholder_[[++cultureKey]]]]" name="[[+searchIndex]]" id="[[+searchIndex]]"/>
<input type="submit" id="search_btn" value=""/>
<input type="hidden" name="id" value="[[+landing:default=[[*id]]]]" />
</form>
mysql> показывать переменные типа ‘char%’;
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.03 sec)
mysql> показать переменные типа ‘collation%’;
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
В шаблоне:
<meta charset="utf-8"/>
<meta http-equiv="content-language" content="ru" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
В чем может быть проблема?
Заранее спасибо.
Не могли бы вы найти таблицу базы данных и сопоставления полей? Они должны использовать все UTF8 и utf_general_ci или utf8_unicode_ci.
Другая проблема может быть вызвана символами UTF-8, закодированными как html-объекты в полях расширенного текста. Возможно, эти объекты не найдены, потому что выполняется только необработанный поиск (я не знаю, как простой поиск подготавливает поиск).
Третья проблема может быть вызвана неправильной кодировкой HTML в шаблоне. Это приведет к неправильным символам в размещенной строке поиска.
Удивительно, но проблема была решена удалением из параметров сниппета. Я не знаю, с чем это связано.
Рабочая версия:
[[!SimpleSearchForm? &landing=`[[++searchlid]]` &tpl=`lisearch`]]
и просто
[[!SimpleSearch]]
на странице Landind.