Убедитесь, что 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 файл с другой кодировкой.