Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по pysqlite, юникод, кодировки... 
:(
    Опции темы
cherep
Дата 18.10.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 11.1.2006
Где: Москва

Репутация: 1
Всего: 4



Привет!!

Есть вопросик...
Записываю в sqlite базу данных русские данные.

Решил воспользоваться MS Access для просмотра базы. Для этого скачал из инета sqliteodbc.exe - устанавливает в систему odbc дрова, с пом которых аксесс может коннектиться к базе.

Есть некая непонятность с кодировками.

Если делаю так

cursor.executemany("""insert into person (name, nick, age) values (?,?,?)""", WHAT)

где 

WHAT = (
        ("Пуц", "Пуц", 123),
        ("Тыц", "Тыц", 234),
        )

то в аксессе эти записи видны нормально, однако считывание их пайтоном не работает:

cursor.execute("select * from person")

# => pysqlite2.dbapi2.OperationalError: Could not decode to UTF-8 column 'nick' with text 'Пуц'

Если делать с

WHAT = (
        (u"Пуц", u"Пуц", 123),
        (u"Тыц", u"Тыц", 234),
        )

то питон работает прекрасно, но в аксессе русские слова отображаются кракозябрами...

Охота добиться, чтоб работало и то и то, чтоб из Аксеса я мог ручками править базу..
Спасибо.

PS. юзаю первой строкой # encoding: cp1251
PM MAIL WWW ICQ   Вверх
batman
Дата 18.10.2006, 06:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 4.10.2006

Репутация: нет
Всего: -2



Цитата(cherep @  18.10.2006,  00:13 Найти цитируемый пост)
юзаю первой строкой # encoding: cp1251 


Поставь # -*- coding: utf-8 -*-

Дальше поделись будь добр, как дела smile 
PM MAIL   Вверх
batman
Дата 18.10.2006, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 4.10.2006

Репутация: нет
Всего: -2



И если можно поподробнее про установку драйверов и настройку. smile 

PM MAIL   Вверх
cherep
Дата 18.10.2006, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 11.1.2006
Где: Москва

Репутация: 1
Всего: 4



К сожалению с 
# -*- coding: utf-8 -*-
эффект такой же как и в случае с использованием u"строка", т.е. питон с sqlite работают без проблем, а вот в Access - русские кракозябрами.

А установка несложная. Поискал в гугле "sqlite odbc". Нашел установщик, он мне скопировал в windows\system32 3 длл-ки - odbc дрова, собсна и все. Когда захочешь открыть потом в Аксессе базу данных выбираешь открыть -> в типах файлов выбираешь ODBC databases(), там выскакивает окошко -> там выбираешь вторую закладку(Machine Data Source), жмешь New -> выбираешь нужный драйвер sqlite (там их 3, нужно тот что sqlite3) -> потом собсно указываешь файлик базы и название для вновь созданного соединения... Вот собственно и все smile

Вот мне еще посоветовали, достаточно полезное : http://www.python.promsoft.ru/index.php?ac...id=3314#id_3314
правда поставил я этот sqlitebrowser, но он мне не понравился - мало возможностей, и чета он у меня отказался править одну табличку, хотя русский действительно отображает правильно.

PM MAIL WWW ICQ   Вверх
proDiva
Дата 18.10.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 19.9.2006
Где: КЧР, Россия

Репутация: 7
Всего: 7



Я не думаю, что могу помочь, но у меня была подобная ситуация, только я работала с dbf-таблицей. Значит я делала так:
при записи в таблицу:
    str=u'дурики'
    field_value=str.encode("cp1251")
при возврате данных из таблицы:
    tmp=field_value.decode("cp1251")
Авось поможет smile 
PM MAIL ICQ   Вверх
batman
Дата 18.10.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 4.10.2006

Репутация: нет
Всего: -2



У меня MS Access заработал русскими буквами без проблемм. А в sqlitebrowser козябрики. Так-то smile 
PM MAIL   Вверх
pythonwin
Дата 19.10.2006, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



cherep, работай через utf-8 smile
PM WWW GTalk Jabber   Вверх
batman
Дата 20.10.2006, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 4.10.2006

Репутация: нет
Всего: -2



Ну, как дела? smile 
PM MAIL   Вверх
cherep
Дата 20.10.2006, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 11.1.2006
Где: Москва

Репутация: 1
Всего: 4



Короче дела так как и были... Как я понял там только для sqlite2 было 2 драйвера - обычный и юникодный, а для sqlite3 - только обычный... И походу тут ничего не сделать с Access'ом.
PM MAIL WWW ICQ   Вверх
batman
Дата 20.10.2006, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 4.10.2006

Репутация: нет
Всего: -2



Нее ты неправ я с sqlite3 работаю м с Access'ом всё Ок! smile 

PM MAIL   Вверх
cherep
Дата 20.10.2006, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 11.1.2006
Где: Москва

Репутация: 1
Всего: 4



то есть ты пишешь в базу именно в юникоде, и в аксессе у тебя все ништяк отображается? Хм.. Хз че за ботва.. У тебя винда русская?

Потому как когда я пишу юникод, у меня в аксессе кракозябры.. Когда пишу ручками в аксессе русские буквы - pysqlite не может прочитать  smile 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0497 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.