С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/95: Рейтинг темы: голосов - 95, средняя оценка - 4.56
4 / 4 / 1
Регистрация: 08.11.2010
Сообщений: 27

Кодировка БД в SQLite

08.01.2011, 15:35. Показов 20123. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всех с праздниками!
Возник вопрос, нигде не могу найти решение. Как установить кодировку для БД в SQLite и вообще возможно ли это средствами SQL или php? Хочу установить utf8, ни один из запросов
SQL
1
2
3
SET NAMES utf8;
SET CHARACTER SET utf8;
SET COLLATION_CONNECTION="utf8_general_ci";
не срабатывает - выдает ошибку near "SET": syntax error...
Один зникомый сказал, что SQLite работает с utf8 начиная с 3-й версии, "насколько я помню...", т.е. данные не достоверны. Может знает кто-то больше? У меня к сожалению проблемы с английским =) поэтому в мануалах ковыряться очень сложно
Кто сталкивался с подобной проблемой, поделитесь пожалуйста опытом.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2011, 15:35
Ответы с готовыми решениями:

Qt и SQLite, кодировка(кириллица)
Добрый день. Помогите разобраться с проблемой кодировок в Qt и SQLite, а именно проблема отображения русских букв. Имеется следующая...

SQLite кодировка символов
Стал изучать SQLite3, все вроде бы нормально, но произошел затык. Когда я пытаюсь вывести строку с помощью функции sqlite3_column_text() и...

Неправильная кодировка в SQLite
Помогите, не правильная кодировка когда я с помощью SQLite получаю данные из файла "Login Data" (Chrome). LVITEM lvi; ...

8
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
08.01.2011, 15:47
SQL
1
PRAGMA encoding = "UTF-8";
http://sqlite.org/pragma.html#pragma_encoding
0
4 / 4 / 1
Регистрация: 08.11.2010
Сообщений: 27
08.01.2011, 16:33  [ТС]
Vovan-VE, прости, но я так и не понял, как юзать данную конструкцию... Вот я создаю БД и таблицу в ней:
PHP
1
2
3
4
5
6
7
8
9
10
  $dblink = sqlite_open('base') or die('Could not create database.');
 
  $query = 'CREATE TABLE users (
              id INTEGER PRIMARY KEY,
              login TEXT,
              password TEXT,
              email TEXT,
              hash TEXT NULL DEFAULT NULL,
              registrated_at TEXT
              ) PRAGMA encoding = "UTF-8"';
Что здесь не так я делаю? Warning: sqlite_query() [function.sqlite-query]: near "PRAGMA": syntax error in... Поясни плиз неразумному )

Добавлено через 7 минут
Я просто до этого с мускулом только работал, возможно что-то недопонимаю )

Добавлено через 17 минут
Ура! Разобрался ) Нужно эту конструкцию в запросе юзать перед созданием таблицы...
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
08.01.2011, 16:56
Invis1ble, Когда создаете таблицу
SQL
1
2
3
4
5
6
7
8
CREATE TABLE 'table_name' (
  id INTEGER PRIMARY KEY,
  login TEXT COLLATE NOCASE,
  password TEXT COLLATE NOCASE,
  email TEXT COLLATE NOCASE,
  hash TEXT NULL DEFAULT NULL COLLATE NOCASE,
  registrated_at TEXT COLLATE NOCASE
);
COLLATE бывает BINARY, NOCASE и RTRIM (http://sqlite.org/datatype3.html#collation)

Кодировка присваивается базе при ее создании и всегда используется для всех ее таблиц. Нельзя изменить кодировку сeществующей таблицы и/или базы.

PRAGMA encoding - это отдельная фича. Где-то в коде у Вас есть
SQL
1
ATTACH DATABASE "/path/database.db" AS 'dbname';
Если я все правильно понял, то при создании базы алгоритм такой:
SQL
1
2
3
PRAGMA encoding = "UTF-8";
ATTACH DATABASE '/path/database.db' AS "dbname";
PRAGMA dbname.encoding;  -- должно выдать UTF-8
А потом при создании таблиц будет использоваться кодировка базы.

Добавлено через 3 минуты
Цитата Сообщение от Invis1ble Посмотреть сообщение
Я просто до этого с мускулом только работал, возможно что-то недопонимаю )
В SQLite, по сравнению с мускулом, всё гораздо более примитивно.
0
4 / 4 / 1
Регистрация: 08.11.2010
Сообщений: 27
08.01.2011, 17:32  [ТС]
Vovan-VE,
COLLATE чесно говоря не понял зачем нужно, сделал без него - вроде все нормально... А по ссылке - я ведь написал, что не дружу с инглишем, чтоб нормально понимать.... )
"PRAGMA encoding - это отдельная фича. Где-то в коде у Вас есть ...."
не совсем, вот мой код для создания БД и таблицы:
SQL
1
2
3
4
5
6
7
8
9
PRAGMA encoding = "UTF-8";
CREATE TABLE irbis_users (
  id INTEGER PRIMARY KEY,
  login TEXT,
  password TEXT,
  email TEXT,
  hash TEXT NULL DEFAULT NULL,
  registrated_at TEXT
  );
вроде все нормально пока.... Проблем не обнаружено )
"В SQLite, по сравнению с мускулом, всё гораздо более примитивно"
это я понял, но я так сказать начинающий юзер СУБД, поэтому многого еще не знаю.

P.S. Объясни насчет COLLATE, я так понял, что есть какие-то подводные камни (проблемы могут быть с ютф в дальнейшем).
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
08.01.2011, 18:50
Цитата Сообщение от Invis1ble Посмотреть сообщение
COLLATE чесно говоря не понял зачем нужно
Чтобы определить, каким образом будет производиться сравнение. По умолчанию BINARY: 'f' != 'F'. NOCASE: 'f' == 'F', но только для латинских букв a-z. RTRIM: аналогично BINARY, но хвостовые пробелы игнорируются.
0
4 / 4 / 1
Регистрация: 08.11.2010
Сообщений: 27
08.01.2011, 18:54  [ТС]
Vovan-VE, спасибо, теперь понял. Ну мне BINARY значит нужен, а по умолчанию какой режим устанавливается?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
08.01.2011, 19:48
Цитата Сообщение от Invis1ble Посмотреть сообщение
а по умолчанию какой режим устанавливается?
BINARY по умолчанию.
1
4 / 4 / 1
Регистрация: 08.11.2010
Сообщений: 27
08.01.2011, 19:54  [ТС]
Vovan-VE, ок, спасибо еще раз за помощь.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2011, 19:54
Помогаю со студенческими работами здесь

SQLite неправильная кодировка
Здравствуйте. Понимаю, что тема уже давно изъезжена, но всё таки, не могу разобраться. Скачал БД SQLite, в командной строке создал таблицу...

Кодировка вывода из SQLite
Есть функция: AnsiString sq_test(){ char *fn; sqlite3 *db; sqlite3_stmt *stmt; sqlite3_open("db.db", & db); ...

Неправильная кодировка при выборке данных из SQLite
Здравствуйте, надеюсь на вашу помощь в следующей пробелме У меня программа, назовем ее главное приложение, работает с базой данных...

Как написать формулы в sqlite или отказаться от использования sqlite вовсе
Доброго времени суток. Друзья, пишу справочник по физике, недавно столкнулся с проблемой - как написать формулы в sqlite? пользуюсь DB...

Файл cookies.sqlite не sqlite на самом деле, или как его открыть
хочу прочитать куки браузеров (это не противозаконно) оперу сделал, хром сделал, у хрома как раз sqlite как и у мозилы делаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru