#2905: UnicodeDecodeError
---------------------------------------------+------------------------------
 Reporter:  anonymous                        |        Owner:  cboos
     Type:  defect                           |       Status:  new  
 Priority:  high                             |    Milestone:  0.10 
Component:  general                          |      Version:  devel
 Severity:  normal                           |   Resolution:       
 Keywords:  UnicodeDecodeError unicode utf8  |  
---------------------------------------------+------------------------------
Comment (by [EMAIL PROTECTED]):

 I have the problem. I tested it in Trac -r 3104.
 {{{
 Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 299,
 in HandlerDispatch\n    result = object(req)
  File "/usr/lib/python2.4/site-packages/trac/web/modpython_frontend.py",
 line 86, in handler\n    gateway.run(dispatch_request)
  File "/usr/lib/python2.4/site-packages/trac/web/wsgi.py", line 87, in
 run\n    response = application(self.environ, self._start_response)
  File "/usr/lib/python2.4/site-packages/trac/web/main.py", line 311, in
 dispatch_request\n    req.hdf['error'] = {
  File "/usr/lib/python2.4/site-packages/trac/web/clearsilver.py", line
 194, in __setitem__\n    self.set_value(name, value, True)
  File "/usr/lib/python2.4/site-packages/trac/web/clearsilver.py", line
 238, in set_value\n    add_value(name, value)
  File "/usr/lib/python2.4/site-packages/trac/web/clearsilver.py", line
 230, in add_value\n    add_value('%s.%s' % (prefix, k), value[k])
  File "/usr/lib/python2.4/site-packages/trac/web/clearsilver.py", line
 220, in add_value\n    self.hdf.setValue(prefix, markup.escape(value))
 UnicodeEncodeError: 'ascii' codec can't encode character u'\\uc774' in
 position 0: ordinal not in range(128)
 }}}

 If I apply the patch, there is no problem.
 {{{
 #!diff
 Index: trunk/trac/web/clearsilver.py
 ===================================================================
 --- trunk/trac/web/clearsilver.py       (revision 3104)
 +++ trunk/trac/web/clearsilver.py       (working copy)
 @@ -217,7 +217,7 @@
                  self.hdf.setValue(prefix, unicode(value).encode('utf-8'))
              elif isinstance(value, str):
                  if escape:
 -                    self.hdf.setValue(prefix, markup.escape(value))
 +                    self.hdf.setValue(prefix,
 markup.escape(value).encode('utf-8'))
                  else:
                      self.hdf.setValue(prefix, value)
              elif isinstance(value, unicode):
 }}}

 Please, confirm the patch.

-- 
Ticket URL: <http://projects.edgewall.com/trac/ticket/2905>
The Trac Project <http://trac.edgewall.com/>
_______________________________________________
Trac-Tickets mailing list
[email protected]
http://lists.edgewall.com/mailman/listinfo/trac-tickets

Reply via email to