You could inherit from DAL and overwrite the methods with wrappers that do the decoding/encoding where needed. I guess typically only insert, update, select and the constructor have to be wrapped.
There is also the "db_codec" keyword argument for DAL constructor defaulted to "utf-8". But I'm guessing this only affects encoding on database level, not the queries.