On Wed, Apr 18, 2007 at 09:21:15PM +0200, Markus Gritsch wrote:
> p = Person(name=u'\u20ac') # \u20ac is the 'Euro symbol'.
> print Person.select(LIKE(Person.q.name, u'\u20ac'))[0].name.encode('utf-8')

   Doesn't work with Postgres and SQLite. To demonstrate the exact place of
the problem I changed the last line to

persons = Person.select(LIKE(Person.q.name, u'\u20ac'))
person = persons[0]
print person.name.encode('utf-8')

   Both Pg and SQLite fail on
person = persons[0]

   The tracebacks are -

SQLite:

Traceback (most recent call last):
  File "./test1.py", line 19, in ?
    person = persons[0]
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/sresults.py",
 line 154, in __getitem__
    return list(self.clone(start=start, end=start+1))[0]
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/sresults.py",
 line 160, in __iter__
    return iter(list(self.lazyIter()))
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/sresults.py",
 line 168, in lazyIter
    return conn.iterSelect(self)
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/dbconnection.py",
 line 374, in iterSelect
    select, keepConnection=False)
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/dbconnection.py",
 line 759, in __init__
    dbconn.printDebug(rawconn, self.query, 'Select')
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/dbconnection.py",
 line 303, in printDebug
    print '%(n)2i%(threadName)s/%(name)s%(spaces)s%(sep)s %(s)s' % locals()
  File "/usr/local/lib/python2.4/encodings/koi8_r.py", line 18, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u20ac' in 
position 82: character maps to <undefined>

PostgreSQL:

Traceback (most recent call last):
  File "./test1.py", line 19, in ?
    person = persons[0]
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/sresults.py",
 line 154, in __getitem__
    return list(self.clone(start=start, end=start+1))[0]
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/sresults.py",
 line 160, in __iter__
    return iter(list(self.lazyIter()))
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/sresults.py",
 line 168, in lazyIter
    return conn.iterSelect(self)
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/dbconnection.py",
 line 374, in iterSelect
    select, keepConnection=False)
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/dbconnection.py",
 line 759, in __init__
    dbconn.printDebug(rawconn, self.query, 'Select')
  File 
"/usr/local/lib/python2.4/site-packages/SQLObject-0.8.2dev_r2514-py2.4.egg/sqlobject/dbconnection.py",
 line 303, in printDebug
    print '%(n)2i%(threadName)s/%(name)s%(spaces)s%(sep)s %(s)s' % locals()
UnicodeEncodeError: 'ascii' codec can't encode character u'\u20ac' in position 
82: ordinal not in range(128)

   Resume: SQLObject doesn't work with unicode expressions yet.

Oleg.
-- 
     Oleg Broytmann            http://phd.pp.ru/            [EMAIL PROTECTED]
           Programmers don't die, they just GOSUB without RETURN.

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
sqlobject-discuss mailing list
sqlobject-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to