Al usar el controlador Unicode de PostgreSQL, debe llamar a setencoding
y setdecoding
como se explica aquí
.
# Python 3.x
cnxn.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
cnxn.setencoding(encoding='utf-8')
Si está utilizando el controlador "ANSI" de PostgreSQL, es posible que aún deba llamar a esos métodos para asegurarse de que el juego de caracteres de un solo byte correcto (también conocido como "página de códigos", por ejemplo, windows-1252
) se usa para SQL_CHAR.