Как узнать Начальный тип данных UTF-8 или UTF-16 в sqlite? - PullRequest
0 голосов
/ 30 октября 2018

В это , функция sqlite3_column_type может сказать мне, является ли исходный тип данных результата текстовым или нет, но она не скажет, является ли это UTF-8 или UTF-16 . Есть ли способ узнать это?

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Если у вас есть совершенно новая пустая база данных, перед созданием каких-либо таблиц вы можете установить внутреннюю кодировку, используемую для текста Unicode, с прагмой encoding , а затем использовать ее для просмотра используемой кодировки ( По умолчанию используется UTF-8).

При сохранении или извлечении значений TEXT sqlite автоматически преобразует при необходимости между UTF-8 и UTF-16, поэтому не имеет большого значения, какой из них используется внутри, если вы не пытаетесь получить каждый последний маленький кусочек производительности из этого.

0 голосов
/ 30 октября 2018

В предоставленной вами ссылке прямо сказано:

const unsigned char sqlite3_column_text (sqlite3_stmt , int iCol);
const void sqlite3_column_text16 (sqlite3_stmt , int iCol);

sqlite3_column_text → UTF-8 TEXT результат
sqlite3_column_text16 → UTF-16 Текстовый результат

Эти процедуры возвращают информацию об одном столбце текущего Строка результата запроса. В каждом случае первый аргумент является указателем в подготовленный оператор, который оценивается (sqlite3_stmt * который был возвращен из sqlite3_prepare_v2 () или одного из его вариантов) а второй аргумент - это индекс столбца, для которого информация должна быть возвращена. Крайний левый столбец набора результатов имеет индекс 0. Количество столбцов в результате можно определить используя sqlite3_column_count ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...