Убедитесь, что SQLite на Android использует UTF-8 в качестве кодировки
Я разрабатываю приложение для Android, использующее SQLite в качестве backend.
Я хочу, чтобы все таблицы в базе данных использовали UTF-8. Как я могу это достичь?
Я пробовал:
CREATE TABLE myTable (_all_columns_definitions_) DEFAULT CHARSET=utf8;
но возникла синтаксическая ошибка.
Ответы
Ответ 1
Учитывая, что sqlite поддерживает только UTF-8 и UTF-16 в качестве кодировок, вы заметили бы, что Android создаст базы данных в чем-то отличном от UTF-8. sqlite3_open по умолчанию создает базу данных в UTF-8, и именно это может использовать Android.
Ответ 2
Вам нужно использовать encoding PRAGMA
:
PRAGMA encoding = "UTF-8";
Ответ 3
По умолчанию Android SQLite использует UTF-8.
У меня была та же проблема со специальными символами, но поскольку когда я заполнил базу данных при первом запуске, я использовал txt файл с другой кодировкой.