UnicodeEncodeError: 'ascii' codec can't encode characters
with a database initialized in french (configuration ini file with language=fr in [database] section), the xmlrpc could fail to generate exceptions with unicode string.
I generated it using proteus, by searching on unsearchable field:
PartyAddress.find([('siret','=','12345678900012')])
On server-side:
78896 2101577000 [2017-09-16 07:18:10,430] ERROR werkzeug Error on request:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/site-packages/werkzeug/serving.py", line 209, in run_wsgi
execute(self.server.app)
File "/usr/local/lib/python2.7/site-packages/werkzeug/serving.py", line 197, in execute
application_iter = app(environ, start_response)
File "/usr/local/lib/python2.7/site-packages/werkzeug/wsgi.py", line 600, in __call__
return self.app(environ, start_response)
File "/home/semarie/tryton-dir/trytond/trytond/wsgi.py", line 95, in __call__
return self.wsgi_app(environ, start_response)
File "/home/semarie/tryton-dir/trytond/trytond/wsgi.py", line 82, in wsgi_app
response = cls.response(data, request)
File "/home/semarie/tryton-dir/trytond/trytond/protocols/xmlrpc.py", line 171, in response
data = client.Fault(data.code, str(data))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 44-45: ordinal not in range(128)
The expected result is:
Fault: <Fault 1: u'Fonction de recherche absente pour le champ \xab\xa0siret\xa0\xbb. - '>
The problem is protocols/xmlrpc.py try to encode TrytonException or Exception using str() instead of unicode().
Files
Download | Creator | Timestamp | Type |
---|---|---|---|
xmlrpc.diff | @semarie | 2017-09-16 07:34:56.121000 UTC | text/plain |