#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