Проблемы с поиском в SQLite каталогах

Create issue
Issue #7 wontfix
CrazyXacker created an issue

Версия 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)

  1. Никита Романов

    Лол. У меня тоже нормально поиск работает На тему решения... Почему нельзя использовать

    public String toLowerCase()
    
  2. Yury Savelyev repo owner

    Потому что скрипт выполняется в sqlite, предполагаю сильное снижение производительности, технически можно попробовать сделать так, если есть смысл, то отпишитесь, затестим

    LOWER(title) like LOWER('%'+searchString+'%')
    
  3. Log in to comment