[pyar] pyodbc detectar charset de bd

Javier Marcon javiermarcon en gmail.com
Mie Mayo 7 15:03:52 ART 2014


Hola, tengo un temita, con pyodbc, al intentar usarlo con varios motores
de bases de datos (en principio con Sql Server y Oracle XE), que es que
Oracle usa encoding utf-8 y sql server usa encoding cp1252, entonces
cuando voy a trabajar con los datos del cursor, .

rows = cursor.fetchall()
for row in rows:
    uuid = unicode(row.uuid.strip()) # funciona en Oracle
               # pero sql server da error de que no puede decodificar
caracter
    uuid = unicode(row.uuid.strip(), "ISO-8859-1") # funciona en Sql Server
               # pero en oracle da error de que no puede encodear utf-8

En todos los casos estoy usando la opción unicode_results=True en la
conexión y no uso ENCODING='UTF-8' porque no se de antemano que encoding
tiene la base de datos.

Alguien sabe como detectar el charset de la base de datos con odbc?,
para hacer el unicode() que corresponda?

La idea es tener un mismo código que funcione para todos los motores de
base de datos.

Gracias,

Javier.


More information about the pyar mailing list