O resultado do SQLAlchemy para a coluna UTF-8 é do tipo 'str', por quê?

Eu tenho uma consulta SQL que eu executo assim com um mecanismo SQLAlchemy:

result = engine.execute('SELECT utf_8_field FROM table')

O banco de dados é o MySQL e o tipo de coluna é TEXT com codificação UTF-8. O tipo do retornado utf_8_field é "str", mesmo se eu definir a opção convert_unicode = True ao criar o mecanismo. O que acontece agora é que se eu tiver um caractere como 'é' na minha string (que não está no ASCII de 7 bits, mas está no conjunto ASCII estendido), recebo um UnicodeDecodeError ao tentar executar isto:

utf_8_field.encode("utf-8")

O erro exato é:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 1: ordinal not in range(128)

Ao olhar para isto, descobri que o str.encode não suporta o conjunto de caracteres ASCII estendido! Acho isso muito estranho, mas essa é outra questão.

O que eu não entendo é porque o SQLAlchemy não está me dando uma string unicode. Eu estava usando anteriormente o DB-API e isso funcionava bem. Eu também não tenho objetos de tabela SQLAlchemy para minhas tabelas ainda, é por isso que estou usando um comando de execução.

Qualquer ideia?

questionAnswers(2)

yourAnswerToTheQuestion