title: SQLAlchemy result for UTF-8 column is of type 'str', why?
body: <p>I have a SQL query that I execute like this with an SQLAlchemy engine:</p>
  
  <pre><code>result = engine.execute('SELECT utf_8_field FROM table')
  </code></pre>
  
  <p>The database is MySQL and the column type is TEXT with UTF-8 encoding.  The type of the returned utf_8_field is "str", even if I set the option convert_unicode=True when creating the engine.  What happens now is that if I have a character like 'é'  in my string (which is not in 7-bit ASCII, but is in the extended ASCII set), I get a UnicodeDecodeError when trying to execute this:</p>
  
  <pre><code>utf_8_field.encode("utf-8")
  </code></pre>
  
  <p>The exact error is:</p>
  
  <pre><code>UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 1: ordinal not in range(128)
  </code></pre>
  
  <p>When looking into this, I found that str.encode do not support the extended ASCII character set!  I find this really strange, but that's another question.</p>
  
  <p>What I don't understand is why SQLAlchemy is not giving me a unicode string.  I was previously using DB-API and that was working fine.  I also don't have SQLAlchemy table objects for my tables yet, that's why I'm using an execute command.</p>
  
  <p>Any idea?</p>