One more check... is the encoding of the database UTF-8? you can check with psql -l
2015-04-27 19:01 GMT+02:00 <bodobam...@gmail.com>: > > which postgresql Version? > > PSQL 9.3.6 @ Ubuntu 14.04.2 LTS > > In the meantime, I played around with pgadmin a little bit: > > 1) Using pgadmin I can create records containing 'ἀγοραζε' (the sample > above) or German Umlaute ä, ö, ü, so it's definetly no database problem. > > 2) Going to Appadmin > https://testmachine/testapp/appadmin/select/db?query=db.test.id%3E0 displays > the records without Problem > > 3) As soon as I edit and save, I'll get a > <type 'exceptions.UnicodeDecodeError'> 'ascii' codec can't decode byte > 0xe1 in position 114: ordinal not in range(128) > > > Traceback (most recent call last): > File "/home/www-data/web2py/gluon/restricted.py", line 227, in restricted > exec ccode in environment > File > "/home/www-data/web2py/applications/testapp/controllers/appadmin.py", line > 704, in <module> > File "/home/www-data/web2py/gluon/globals.py", line 393, in <lambda> > self._caller = lambda f: f() > File > "/home/www-data/web2py/applications/testapp/controllers/appadmin.py", line > 343, in update > if form.accepts(request.vars, session): > File "/home/www-data/web2py/gluon/sqlhtml.py", line 1677, in accepts > if pk: > File "/home/www-data/web2py/gluon/packages/dal/pydal/objects.py", line > 2117, in update > uploadfolder = pjoin( > File "/home/www-data/web2py/gluon/packages/dal/pydal/adapters/base.py", > line 988, in update > raise e > UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 114: > ordinal not in range(128) > > > > > > Am Sonntag, 26. April 2015 15:27:06 UTC+2 schrieb Massimo Di Pierro: > >> which postgresql version? I am failing to reproduce this. >> >> On Saturday, 25 April 2015 10:28:07 UTC-5, bodob...@gmail.com wrote: >>> >>> Hey guys, >>> >>> 2.10.3 doesn't seem ready for prime time :-( In fact this bug makes >>> 2.10.3 unusable for postgres users with need for non ASCII-characters.. >>> >>> For reference let's link to the corresponding issue here too: >>> https://github.com/web2py/web2py/issues/910 >>> >>> Is there any solution yet? >>> >>> Bodo >>> >>> Am Samstag, 11. April 2015 16:38:13 UTC+2 schrieb Ian W. Scott: >>> >>>> Thanks Richard. My production server is working fine with 2.9.11. I'll >>>> open an issue on the web2py github repo, since it sounds like that's the >>>> better forum for this. >>>> >>>> Ian >>>> >>>> >>>> On Friday, April 10, 2015 at 3:40:16 PM UTC-4, Richard wrote: >>>>> >>>>> Ok, ok, I guess there is an issue with web2py or pyDAL... Can you test >>>>> this with an earlier version of web2py? If it works consider open an issue >>>>> in web2py on github with condition to reproduce the error and if it coming >>>>> form pyDAL the issue will be migrate to pyDAL repo once the origin of the >>>>> issue is found. >>>>> >>>>> Richard >>>>> >>>>> On Fri, Apr 10, 2015 at 3:24 PM, Ian W. Scott <scot...@gmail.com> >>>>> wrote: >>>>> >>>>>> Also, as I pointed out in my question I can insert the same string >>>>>> (with the same encoding) directly into the postgre database using the raw >>>>>> SQL code that is being sent by pydal to the postgre adapter. I inserted a >>>>>> print statement into adapters/base.py to give me the exact SQL command, >>>>>> copied that SQL command (data and all), then ran it in pgAdmin with no >>>>>> problem. So it can't be a problem with the encoding of the string being >>>>>> received by the pydal. >>>>>> >>>>>> Ian >>>>>> >>>>>> On Friday, April 10, 2015 at 2:05:25 PM UTC-4, Richard wrote: >>>>>>> >>>>>>> Can you please show the code that lead to this error? >>>>>>> >>>>>>> If you hard code this you can't use a regular string (str()) which >>>>>>> is ascii characters only you have to pass by unicode something like >>>>>>> this : >>>>>>> >>>>>>> string = u'ἀγοραζε'.decode(utf-8) >>>>>>> >>>>>>> http://stackoverflow.com/questions/6289474/working- >>>>>>> with-utf-8-encoding-in-python-source >>>>>>> >>>>>>> If the greek character come form user input web2py deal with this to >>>>>>> my knowledge... So I am pretty sure you hard code greek character in >>>>>>> your >>>>>>> code... So you need to read about encoding in python... >>>>>>> >>>>>>> Richard >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Fri, Apr 10, 2015 at 1:29 PM, Ian W. Scott <scot...@gmail.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Hi folks, >>>>>>>> >>>>>>>> I'm running into an error with 2.10.3 when I try to write unicode >>>>>>>> text (outside the Latin ranges) to a regular string field in a postgre >>>>>>>> database. Since my app is a greek language-learning application this >>>>>>>> error >>>>>>>> breaks things completely for me. >>>>>>>> >>>>>>>> When I try, for example, to insert the string 'ἀγοραζε' I get the >>>>>>>> following error: >>>>>>>> >>>>>>>> Traceback (most recent call last): >>>>>>>> >>>>>>>> File "applications/paideia/modules/paideia.py", line 168, in >>>>>>>> start >>>>>>>> pre_bug_step_id=pre_bug_step_id) >>>>>>>> File "applications/paideia/modules/paideia.py", line 384, in >>>>>>>> reply >>>>>>>> response_string) >>>>>>>> File "applications/paideia/modules/paideia.py", line 655, in >>>>>>>> _record_step >>>>>>>> log_record_id = db.attempt_log.insert(**log_args) >>>>>>>> File "/home/ian/web/web2py/gluon/packages/dal/pydal/objects.py", >>>>>>>> line 745, in insert >>>>>>>> ret = self._db._adapter.insert(self, self._listify(fields)) >>>>>>>> File "/home/ian/web/web2py/gluon/packages/dal/pydal/adapters/ >>>>>>>> base.py", line 729, in insert >>>>>>>> raise e >>>>>>>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in >>>>>>>> position 105: ordinal not in range(128) >>>>>>>> >>>>>>>> >>>>>>>> The SQL being sent to the postgre adapter in this case was this: >>>>>>>> >>>>>>>> INSERT INTO attempt_log(name,user_response,step,score,modified_on, >>>>>>>> dt_attempted,in_path,uuid) VALUES (19,'ἀγοραζε',773,1.0,'2015-04-10 >>>>>>>> 12:33:25','2015-04-10 16:33:26',657,'5918a65a-6d6f- >>>>>>>> 42c6-9af2-f5d0e313701e') RETURNING id; >>>>>>>> >>>>>>>> When I execute that SQL command directly on the postgre database it >>>>>>>> doesn't raise any errors and the new row is created fine. >>>>>>>> >>>>>>>> I've created a simple app that duplicates the error and attached >>>>>>>> the packed app here. Since the error doesn't happen with sqlite, I've >>>>>>>> set >>>>>>>> up the app db for a postgre database with the following connection >>>>>>>> details: >>>>>>>> >>>>>>>> username = 'postgres' >>>>>>>> postgre host = 'localhost' >>>>>>>> postgre db_name = 'unicode_bug_test' >>>>>>>> >>>>>>>> I've left the db password field empty in the db.py file for obvious >>>>>>>> reasons (i.e., my local password wouldn't do anyone any good anyway). >>>>>>>> >>>>>>>> If you try to create a new record in the 'lemmas' table using >>>>>>>> appadmin with non-Latin text in the 'lemma' field (something like >>>>>>>> 'βλα') >>>>>>>> you should get the same error. >>>>>>>> >>>>>>>> Ian >>>>>>>> >>>>>>>> -- >>>>>>>> Resources: >>>>>>>> - http://web2py.com >>>>>>>> - http://web2py.com/book (Documentation) >>>>>>>> - http://github.com/web2py/web2py (Source code) >>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>>>> --- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "web2py-users" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to web2py+un...@googlegroups.com. >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>> Resources: >>>>>> - http://web2py.com >>>>>> - http://web2py.com/book (Documentation) >>>>>> - http://github.com/web2py/web2py (Source code) >>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "web2py-users" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to web2py+un...@googlegroups.com. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- > Resources: > - http://web2py.com > - http://web2py.com/book (Documentation) > - http://github.com/web2py/web2py (Source code) > - https://code.google.com/p/web2py/issues/list (Report Issues) > --- > You received this message because you are subscribed to the Google Groups > "web2py-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to web2py+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.