web2py uses b64encode/decode to store/retrieve data in blobs. Legacy tables probably do not do it.
You need you make your own custom adapter to override a method. For example for PostgreSQL:
from gluon.dal import ADAPTERS, UseDatabaseStoredFile,PostgreSQLAdapter
class MyPostgresAdapter(PostgreSQLAdapter):
drivers = ('psycopg2',)
def parse_blob(self, value, field_type): return value
ADAPTERS['mypostgres'] = MyPostgresAdapter
db = DAL('mypostgres://.....')