![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| cherep |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
| batman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 4.10.2006 Репутация: нет Всего: -2 |
||||
|
||||
| batman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 4.10.2006 Репутация: нет Всего: -2 |
И если можно поподробнее про установку драйверов и настройку.
|
|||
|
||||
| cherep |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 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) -> потом собсно указываешь файлик базы и название для вновь созданного соединения... Вот собственно и все Вот мне еще посоветовали, достаточно полезное : http://www.python.promsoft.ru/index.php?ac...id=3314#id_3314 правда поставил я этот sqlitebrowser, но он мне не понравился - мало возможностей, и чета он у меня отказался править одну табличку, хотя русский действительно отображает правильно. |
|||
|
||||
| proDiva |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 19.9.2006 Где: КЧР, Россия Репутация: 7 Всего: 7 |
Я не думаю, что могу помочь, но у меня была подобная ситуация, только я работала с dbf-таблицей. Значит я делала так:
при записи в таблицу: str=u'дурики' field_value=str.encode("cp1251") при возврате данных из таблицы: tmp=field_value.decode("cp1251") Авось поможет |
|||
|
||||
| batman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 4.10.2006 Репутация: нет Всего: -2 |
У меня MS Access заработал русскими буквами без проблемм. А в sqlitebrowser козябрики. Так-то
|
|||
|
||||
| pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
cherep, работай через utf-8
|
|||
|
||||
| batman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 4.10.2006 Репутация: нет Всего: -2 |
Ну, как дела?
|
|||
|
||||
| cherep |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 11.1.2006 Где: Москва Репутация: 1 Всего: 4 |
Короче дела так как и были... Как я понял там только для sqlite2 было 2 драйвера - обычный и юникодный, а для sqlite3 - только обычный... И походу тут ничего не сделать с Access'ом.
|
|||
|
||||
| batman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 4.10.2006 Репутация: нет Всего: -2 |
Нее ты неправ я с sqlite3 работаю м с Access'ом всё Ок!
|
|||
|
||||
| cherep |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 74 Регистрация: 11.1.2006 Где: Москва Репутация: 1 Всего: 4 |
то есть ты пишешь в базу именно в юникоде, и в аксессе у тебя все ништяк отображается? Хм.. Хз че за ботва.. У тебя винда русская?
Потому как когда я пишу юникод, у меня в аксессе кракозябры.. Когда пишу ручками в аксессе русские буквы - pysqlite не может прочитать |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |