Уведомления

Группа в Telegram: @pythonsu

#1 Май 23, 2013 14:26:47

Mulber
Зарегистрирован: 2012-05-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт dbf (dbase III) ODBC + python (проблема с кодировкой)

Добрый день.
Имеется dbf в формате dbase III, мне необходимо его импортировать в БД. Но вместо кириллицы - кракозябры вида:
€«¬ ae ’ZZ “–?a i?a??¤?a®? ­?i ??c a?”
’?€?‘-?S‘??…‘‘ S€‡€•‘’€?
’ZZ “??®­®¬aa ­a?®­a «a?­?”

Насколько я знаю, в dbase 4 есть 29-й байт, в котором можно явно указать кодировку, с такими файлами проблем нет.
Кусок кода на питоне, который я использую для выборки из файла dbf:

  import pythoncom
  import math
  dsOut.clear()
  from ADOQuery import Query
  q = Query()
  q.DatabaseName = 'SUB-IMPCAT'
  q.sql = 'select * from KAT_SORT'
  try:
    q.Open()
  except pythoncom.com_error, e:
    print e[2][2]
  q.First()
  if q.EOF and q.BOF:
    return

Реестр не могу править, настройки в BDE Administrator тоже. Как я понимаю можно прописать через ConnectionStrings, но в питоне я практически 0. Подскажите что можно попробовать сделать, чтобы не было проблем с кодировкой.
Собственно структура заголовка этого dbf:

Офлайн

#2 Май 23, 2013 15:09:46

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

импорт dbf (dbase III) ODBC + python (проблема с кодировкой)

Попробуйте так:


  # -*- coding: cp1251 -*-
  import pythoncom
  import math
  dsOut.clear()
  from ADOQuery import Query
  q = Query()
  q.DatabaseName = 'SUB-IMPCAT'
  q.sql = 'select * from KAT_SORT'
  try:
    q.Open()
  except pythoncom.com_error, e:
    print e[2][2]
  q.First()
  if q.EOF and q.BOF:
    return

или
# -*- coding: utf-8 -*-



————————–
Истина где-то рядом

Отредактировано alexbadaloff (Май 23, 2013 15:10:04)

Офлайн

#3 Май 23, 2013 15:21:20

Mulber
Зарегистрирован: 2012-05-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт dbf (dbase III) ODBC + python (проблема с кодировкой)

alexbadaloff

Не помогло, все то же самое

Офлайн

#4 Май 27, 2013 05:46:03

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

импорт dbf (dbase III) ODBC + python (проблема с кодировкой)

Пользуйте лучше ydbf для импорта.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Май 27, 2013 10:55:01

Mulber
Зарегистрирован: 2012-05-15
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

импорт dbf (dbase III) ODBC + python (проблема с кодировкой)

Проблема разрешилась отказом от использования memo-полей. Всем спасибо за участие!

Пользуйте лучше ydbf для импорта.

ок, гляну

Офлайн

#6 Май 27, 2013 16:34:39

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

импорт dbf (dbase III) ODBC + python (проблема с кодировкой)

PooH
Пользуйте лучше ydbf для импорта.
Тогда уж dbf



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version