Проблемы с поиском в SQLite каталогах
Версия MWX: 3.0.7.6
Версия системы: Android 4.4.2 AOSP
Описание бага: Поиск по SQLite каталогам кириллицой работает не корректо. Это известный баг SQLIte, что при вызове LIKE '%текст%' для кириллицы ВАЖНЫ регистры (АаЯа), а вот для - eng не важны. Поэтому, при поиске в каталоге Наруто я увижу мангу, а вот при поиске наруто - нет!
Как повторить: Берем любой каталог с заведомо известным наличием некой манги и ищем с разными регистрами.
Парсер для проверки: AComics
Манга для проверки: Время мазни
Глава манги для проверки: -
Предлагаемое исправление: В код MWX подробно не смотрел, поэтому не уверен, как оно работает тут, но в PHP я уже решал эту задачу вот так:
//Delete first symbol if text in UTF-8 (bad working SQLite LIKE workaround)
if (mb_detect_encoding($query) === "UTF-8") {
$query = substr($query, 2); //Delete 2(!) bytes from start
}
Просто удалял первые два байта из данных, если пользователь ввел русский текст. НО! Я заведомо знал, что большая буква может быть только в начале названия манги.
Comments (6)
-
repo owner -
repo owner - changed status to on hold
Пока непонятно как решить, и как повторить..
-
Лол. У меня тоже нормально поиск работает На тему решения... Почему нельзя использовать
public String toLowerCase()
-
repo owner Потому что скрипт выполняется в sqlite, предполагаю сильное снижение производительности, технически можно попробовать сделать так, если есть смысл, то отпишитесь, затестим
LOWER(title) like LOWER('%'+searchString+'%')
-
repo owner - marked as enhancement
-
repo owner - changed status to wontfix
- Log in to comment
Прикинь..