Wednesday, November 16, 2011

Unicode text in dev-server.

When I try insert Russian text (unicode) from python I have exception:
  File "c:\programs\PYTHONLIB\MySQLdb\cursors.py", line 159, in execute
  File "c:\programs\PYTHONLIB\MySQLdb\connections.py", line 264, in literal
  File "c:\programs\PYTHONLIB\MySQLdb\connections.py", line 202, in unicode_literal
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-5: ordinal not in range(256)

In production code work fine. I don't set connection explicit.Utf8 is default charset for my local database.

code example:
from google.appengine.api import rdbms
conn = rdbms.connect(instance='...', database='...')
cur = conn.cursor()

cur.execute(u'REPLACE INTO `email` (`id`, `time`, `from`, `to`, `subject`, `comment`, `text`) VALUES (%s, %s, %s, %s, %s, %s, %s)',
                    ['123', '2011-10-9--10-11-25', 'test@test.com', 'testto@test.com', u'Привет', u'Комментарий', u'Русский текст'])


No comments:

Post a Comment