title: Why does my text field get hex encoded when storing a string to postgresql with SQLAlchemy in Python 3
body: <p>This one has had me stumped for a while now.  I have a column in a postgresql database that I have declared as text.  In my web app, I'm storing to this column using a SQLAlchemy like this:</p>
  
  <pre><code>engine = create_engine(dburl, client_encoding='utf8', convert_unicode=True)
  questions = Table('questions', meta, autoload=True, autoload_with=engine)
  questions.update().where(
      questions.c.id == res['id']).values(question = self.block_text.encode('utf8'), 
      timestamp=last_changed, is_private='F'...)
  </code></pre>
  
  <p>The <code>block_text</code> value is a python3 string.</p>
  
  <p>Here's what it looks like when it gets to the database:</p>
  
  <pre><code>\x0a3c6469...
  \x0a3c6469...
  \x0a3c6469...
  </code></pre>
  
  <p>When I get them back using a query I have to check for the <code>\x</code> at the start of the string and then <code>foo[2:].decode('hex')</code> to recover the readable string value.  Which works nearly all the time, but I don't understand why this is happening.  The same code when run under Python2 stores the string in readable format. What do I need to do to get the string stored in a readable format in Python3 ??</p>