Найти - Пользователи
Полная версия: импорт dbf (dbase III) ODBC + python (проблема с кодировкой)
Начало » Базы данных » импорт dbf (dbase III) ODBC + python (проблема с кодировкой)
1
Mulber
Добрый день.
Имеется 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:
alexbadaloff
Попробуйте так:


  # -*- 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 -*-
Mulber
alexbadaloff

Не помогло, все то же самое
PooH
Пользуйте лучше ydbf для импорта.
Mulber
Проблема разрешилась отказом от использования memo-полей. Всем спасибо за участие!

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

ок, гляну
pyuser
PooH
Пользуйте лучше ydbf для импорта.
Тогда уж dbf
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