Найти - Пользователи
Полная версия: Кодировка SQLite
Начало » Базы данных » Кодировка SQLite
1
Art-master
Снова добрый день!
Возникла проблема хранения данных в формате unicode в sql-таблицах, погуглил: так и не нашел.
Заранее скажу, что использую для этих нужд sqlite.

Пробовал сам: БД конечно, сохраняет строку у себя, но при выборке пишет примерно следующее:
sqlite3.OperationalError: Could not decode UTF-8 column ‘name’ with text ‘пример’

Заранее спасибо!

JOHN_16
Art-master
показывайте код, ибо sqlite работает в UTF-8 по умолчанию, возможно проблема где то в коде
Art-master
Вот
# coding: utf8
import sqlite3 as sql
db = sql.connect("data.db")
c = db.cursor()
c.execute(u"CREATE TABLE tab (id INT, name VARCHAR(100));")
c.execute(u"INSERT INTO tab VALUES (1, 'пример');")
c.execute(u"SELECT name FROM tab WHERE id=1;")
print c.fetchone()
db.commit()
db.close()
raw_input()

Только небольшая поправка - раньше я писал ровно то же самое в оболочке, теперь написал как скрипт, теперь выводит следующее:
SyntaxError: ‘utf8’ codec can't decode byte 0xef in position 30: invalid continuation byte
JOHN_16
Art-master
ну во первых, в вашем коде уже синтаксическая ошибка, а именно не INTRO, а INTO… если это опечатка, то подумайте хорошенько как так получилось что вы на форум постите код который не проверяли.
во вторых, я скопировал, вставил, запустил и у меня все работает.
судя по наличию в конце raw_input у вас ОС Windows, так ли это? Вы действительно убедились что сам текст кода программы является текстом кодированным в utf-8, ведь верхняя строчка это указание интерпретатору о том что данный модуль кодирован в utf-8, но сам текст может быть кодирован как угодно (cp1251, cp866) - что может являться причиной разного рода ошибок, включая неявные.
Art-master
Простите за синтаксис, но при переносе кода на форум, я его сделал немного более читабельным, и случайно написал INTRO.
Действительно, ошибка была кодировке самого скрипта, что весьма странно, как я мог этого не заметить.

Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB