Лучшее, что вы можете сделать, это использовать unicodedata.normalize()
для разложения символа, а затем отфильтровать акценты.
Не забудьте использовать unicode
и unicode литералов в вашем коде.
К сожалению, так работает SQLite. Из Изоляция в SQLite :
... Но как быть с изменениями, которые происходят во время выполнения оператора SELECT? Что, если оператор SELECT запущен, а интерфейс sqlite3_step () проходит примерно половину своего вывода, тогда некоторые операторы UPDATE выполняются приложением, которое изменяет таблицу, которую читает оператор SELECT, а затем выполняется больше вызовов sqlite3_step () закончить оператор SELECT? Увидят ли последующие шаги оператора SELECT изменения, сделанные UPDATE, или нет? Ответ заключается в том, что это поведение не определено ... И, следовательно, разработчики должны старательно избегать написания приложений, которые делают предположения о том, что произойдет в этих обстоятельствах.
blockquote>Это означает, что SQLite может обеспечить некоторую изоляцию между различными соединениями с одной и той же базой данных (будьте осторожны, только одна из них должна писать), но вы не должны пытаться изменять базу данных, по крайней мере, таблицы, которые читаются между началом и концом SELECT.