Текстовые кодировки
#define SQLITE_UTF8 1 /* IMP: R-37514-35566 */ #define SQLITE_UTF16LE 2 /* IMP: R-03371-37637 */ #define SQLITE_UTF16BE 3 /* IMP: R-51971-34154 */ #define SQLITE_UTF16 4 /* Use native byte order */ #define SQLITE_ANY 5 /* Deprecated */ #define SQLITE_UTF16_ALIGNED 8 /* sqlite3_create_collation only */ #define SQLITE_UTF8_ZT 16 /* Zero-terminated UTF8 */
Эти константы задают целочисленные коды, представляющие различные текстовые кодировки, поддерживаемые SQLite.
- SQLITE_UTF8
- Текст закодирован в UTF-8
- SQLITE_UTF16LE
- Текст закодирован в UTF-16, причём каждая кодовая точка представлена в порядке «от младшего байта к старшему» — сначала идёт наименее значимый байт. Это обычная кодировка, например, в Windows.
- SQLITE_UTF16BE
- Текст закодирован в UTF-16, причём каждая кодовая точка представлена в порядке «от старшего байта к младшему» — сначала идёт наиболее значимый байт. Эта кодировка встречается реже, но иногда используется, особенно в старых системах.
- SQLITE_UTF16
- Текст закодирован в UTF-16, причём каждая кодовая точка представлена либо в порядке от младшего байта к старшему, либо в порядке от старшего байта к младшему — в соответствии с порядком байтов, принятым на компьютере-хосте.
- SQLITE_ANY
- Это значение кодировки можно использовать только для объявления предпочтительной кодировки текста для определяемых приложением функций SQL, созданных с помощью sqlite3_create_function() и подобных функций. Если предпочтительная кодировка (4-й параметр sqlite3_create_function() — параметр eTextRep) имеет значение SQLITE_ANY, это означает, что функция не предъявляет требований к кодировке текста своих параметров и может принимать текст в любой кодировке, которую ядро SQLite сочтёт удобной. Этот параметр устарел. Не используйте его в новых приложениях.
- SQLITE_UTF16_ALIGNED
- Это значение кодировки можно использовать в качестве 3-го параметра (параметра eTextRep) для sqlite3_create_collation() и подобных функций. Оно означает, что определяемая приложением последовательность сортировки ожидает входные строки в UTF-16 с порядком байтов, принятым на компьютере-хосте, и что начало строк должно быть выровнено по границе в 2 байта.
- SQLITE_UTF8_ZT
- Этот параметр можно использовать только для указания кодировки текста строк, передаваемых в sqlite3_result_text64() и sqlite3_bind_text64(). Кодировка SQLITE_UTF8_ZT означает, что входная строка (назовём её «z») закодирована в UTF-8 и завершается нулевым байтом. Если параметр длины (назовём его «n») неотрицателен, этот параметр кодировки означает, что вызывающая сторона гарантирует наличие в массиве z как минимум n+1 байта и то, что байт z[n] равен нулю. Этот параметр обеспечивает тот же результат, что и SQLITE_UTF8, но в некоторых случаях может быть эффективнее, поскольку позволяет избежать копирования входной строки. Однако если для z выделено меньше n+1 байта или байт z[n] не равен нулю, поведение не определено.
См. также списки объектов, констант и функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/c_any.html