Кажется, что SQLite вообще не заботится о локали. Единственное место, где я нашел упоминание о локалях, - это вычисление datetime('now')
. Но документация говорит, что его поведение зависит от базовых функций Си. Он сохраняет текстовые данные в Unicode по умолчанию (в версиях выше 3.0), но преобразование в Unicode является обязанностью клиентских библиотек.
Кстати, консоль SQLite под MS Windows - это одно из тех редких консольных приложений, которое все еще работает, как и ожидалось, когда вы переключаете кодовую страницу консоли на utf-8.
UPD
Некоторые цитаты из документации SQLite:
один
Когда SQLite сравнивает две строки, он использует последовательность упорядочения или функцию упорядочения (два слова для одной и той же вещи), чтобы определить, какая строка больше или две строки равны. SQLite имеет три встроенные функции сортировки: BINARY, NOCASE и RTRIM.
- BINARY - сравнивает строковые данные, используя memcmp (), независимо от кодировки текста.
- NOCASE - То же, что и двоичный, за исключением того, что 26 символов ASCII в верхнем регистре сложены в эквиваленты в нижнем регистре до того, как будет выполнено сравнение. Обратите внимание, что только символы ASCII складываются в регистр. SQLite не пытается выполнить полное UTF-сворачивание регистра из-за требуемого размера таблиц.
- RTRIM - То же, что и двоичный, за исключением того, что символы в конце пробела игнорируются.
Приложение может зарегистрировать дополнительные функции сортировки, используя интерфейс sqlite3_create_collation ().
два
нижний (X) Функция нижнего (X) возвращает копию строки X со всеми символами ASCII, преобразованными в нижний регистр. Встроенная функция lower () по умолчанию работает только для символов ASCII. Для преобразования регистра символов, не входящих в ASCII, загрузите расширение ICU.
upper (X) Функция upper (X) возвращает копию входной строки X, в которой все символы ASCII в нижнем регистре преобразуются в их эквивалент в верхнем регистре.
три
SQLITE_ENABLE_ICU Эта опция [компиляции] приводит к добавлению в сборку расширения International Components для Unicode или "ICU" для SQLite.
Похоже, в любом случае вам нужно будет самостоятельно скомпилировать sqlite.