Hi, before to make the insert, you need change the string ascii to utf8,

Newvalue=value.encode(utf-8)

El 05/11/2010 12:18, "Stef Mientki" <stef.mien...@gmail.com> escribió:


I'm trying to insert a record with a filed value
 u"ëLocatie"

and I get an error in sql.Table._insert at the last line:
       return 'INSERT INTO %s(%s) VALUES (%s);' % (sql_t, sql_f, sql_v)

here the traceback
 File "D:\Data_Python_25\support\Web2Py_DAL_support.py", line 250, in
DAL_Table
   Description = Value[3][:-1])
 File "P:\Web2PY\web2py_src\web2py\gluon\sql.py", line 2035, in insert
   query = self._insert(**fields)
 File "P:\Web2PY\web2py_src\web2py\gluon\sql.py", line 2028, in _insert
   return 'INSERT INTO %s(%s) VALUES (%s);' % (sql_t, sql_f, sql_v)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 35:
ordinal not in range(128)

I don't understand the problem and know what I'm doing wrong

Wwith print statements I tried to narrow the problem, and in :
def sql_represent(obj, fieldtype, dbname, db_codec='UTF-8'):

there's is this part
   if isinstance(obj, unicode):
       print '????', type(obj),obj
       if len(obj)>0 : print ord(obj[0])
       obj = obj.encode(db_codec)
       print '????', type(obj)
       if len(obj)>0 : print ord(obj[0])

which seems to convert the unicode to a string with byte values larger than
128.

Am I doing something wrong, or is this a bug ?
And of course far more interesting, how do I solve this problem ?

thanks,
Stef Mientki

Reply via email to