Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 30, 2009 23:02:50

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

sqlLite. Работа с Юникодом

Здравствуйте!
У меня есть в БД(sqlLite3) записи в юникоде(cp1251) на украинском языке.
Когда я делаю выборку из БД то мне возвращает символы в крякозябле. Как декодировать обратно?
PS. Python 2.5, OS WindowsXP

    def in_db_lang_text(self):
db = sqlite3.connect('films.db')
cursor=db.cursor()
k= cursor.execute('SELECT * FROM lang WHERE id=1;')
u=""
for row in k:
u+=str(row)+","

cursor.close()
db.close()
return u
потом пишу такое:
lan=self.in_db_lang_text()
print lan
выдает такое:
(1, u'\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430', u'Ukrainian', u'\u0412\u0438\u0431\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430', u'\u041a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447:', u'\u041f\u0430\u0440\u043e\u043b\u044c:')

Отредактировано (Апрель 30, 2009 23:04:01)

Офлайн

#2 Май 2, 2009 20:06:11

wonderfulll
От:
Зарегистрирован: 2009-01-30
Сообщения: 72
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlLite. Работа с Юникодом

helm2004
У меня есть в БД(sqlLite3) записи в юникоде(cp1251)
так в юникоде или cp1251?



Офлайн

#3 Май 3, 2009 11:40:31

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

sqlLite. Работа с Юникодом

А хрен его знает, даю полный сурс записи в БД:

# -*- coding: cp1251 -*-
import sqlite3

db = sqlite3.connect('films.db')
cursor=db.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS users('id' INTEGER PRIMARY KEY AUTOINCREMENT, \
'name' TEXT,'pass' TEXT, 'path_cover' TEXT, 'path_screen' TEXT, 'path_cont' TEXT,\
'lang' INTEGER )")
cursor.execute("CREATE TABLE IF NOT EXISTS contact('id' INTEGER PRIMARY KEY AUTOINCREMENT, \
'name' TEXT, 'tel_mob' TEXT, 'photo' TEXT, 'film list' TEXT)")
cursor.execute("CREATE TABLE IF NOT EXISTS quality_films('id' INTEGER PRIMARY KEY AUTOINCREMENT, \
'name' TEXT)")
cursor.execute("CREATE TABLE IF NOT EXISTS genre_films('id' INTEGER PRIMARY KEY AUTOINCREMENT, \
'name' TEXT)")
cursor.execute("CREATE TABLE IF NOT EXISTS types_of_media('id' INTEGER PRIMARY KEY AUTOINCREMENT, \
'name' TEXT)")
cursor.execute("CREATE TABLE IF NOT EXISTS films('id' INTEGER PRIMARY KEY AUTOINCREMENT, \
'name' TEXT, 'year' INTEGER, 'description' TEXT, 'cover' TEXT, 'screens' TEXT, \
'types_of_media' INTEGER, 'size' INTEGER, 'nunber_cd' INTEGER, 'genre_films' TEXT, \
'quality_films' INTEGER)")
cursor.execute("CREATE TABLE IF NOT EXISTS lang('id' INTEGER PRIMARY KEY AUTOINCREMENT, \
'name' TEXT, 'name_EN' TEXT, 'usersWindowTitle' TEXT, 'user_choice_text' TEXT,\
'pass_choice_text' TEXT )")
try:
cursor.execute("INSERT INTO users(id,name) VALUES(1,'admin');")
cursor.execute(u"INSERT INTO lang(id,name,name_EN,usersWindowTitle,user_choice_text,\
pass_choice_text) VALUES(1,'Українська','Ukrainian','Виберить користувача','Користувач:',\
'Пароль:');")
except Exception:
print "lklklkkl"
db.commit()

cursor.close()
db.close()

Офлайн

#4 Май 3, 2009 18:24:32

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

sqlLite. Работа с Юникодом

нужно еще конфиг sqlite

Офлайн

#5 Май 3, 2009 19:14:20

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

sqlLite. Работа с Юникодом

helm2004
У меня есть в БД(sqlLite3) записи в юникоде(cp1251) на украинском языке.
cp1251 это не есть юникод…
sypper-pit
нужно еще конфиг sqlite
O_o у sqlite есть конфиг?!



Офлайн

#6 Май 3, 2009 21:15:59

helm2004
От: Украина, Винница
Зарегистрирован: 2008-02-27
Сообщения: 630
Репутация: +  9  -
Профиль   Отправить e-mail  

sqlLite. Работа с Юникодом

Чуваги, ай ем сорри, может я не правильно вопрос задал, но, мне нужно чтоб запись из БД следуещего типа превратилась в читабельную:
1, u'\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430', u'Ukrainian', u'\u0412\u0438\u0431\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430', u'\u041a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447:', u'\u041f\u0430\u0440\u043e\u043b\u044c:')
ятак понимаю, что это юникод.

Офлайн

#7 Май 3, 2009 21:20:35

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

sqlLite. Работа с Юникодом

igor.kaist
sypper-pit
нужно еще конфиг sqlite
O_o у sqlite есть конфиг?!
У всего есть конфиг :) а к БД это тоже относится :)

Офлайн

#8 Май 3, 2009 21:21:49

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

sqlLite. Работа с Юникодом

helm2004
Чуваги, ай ем сорри, может я не правильно вопрос задал, но, мне нужно чтоб запись из БД следуещего типа превратилась в читабельную:
1, u'\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430', u'Ukrainian', u'\u0412\u0438\u0431\u0435\u0440\u0438\u0442\u044c \u043a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430', u'\u041a\u043e\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447:', u'\u041f\u0430\u0440\u043e\u043b\u044c:')
ятак понимаю, что это юникод.
тут нужно перекодировку делать из utf8 в cp1251

Офлайн

#9 Май 3, 2009 21:39:37

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

sqlLite. Работа с Юникодом

sypper-pit, нет у нее конфига :) или я что то пропустил…



Офлайн

#10 Май 3, 2009 22:41:40

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

sqlLite. Работа с Юникодом

igor.kaist
нет у нее конфига
всё зависит от ОС и какие параметры стоят на ней , тип файловой системы :) а с конфигом что то загнул , сори :)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version