Hi: This patch broke my rss. When update web2py 2.9.5 to 2.9.11 the RSS produces an encoding error.
Ticket ID > > 192.168.0.109.2014-11-18.08-43-24.a4e11dac-b0ab-49b8-83b7-105ea1ba5ad2 > <type 'exceptions.UnicodeEncodeError'> 'ascii' codec can't encode > character u'\xf3' in position 23: ordinal not in range(128) Version > web2py™ Version 2.9.11-stable+timestamp.2014.09.15.23.35.11 Python Python > 2.7.3: /usr/bin/python (prefix: /usr) Traceback > > 1. > 2. > 3. > 4. > 5. > 6. > 7. > 8. > 9. > 10. > 11. > > Traceback (most recent call last): > File "/home/www-data/web2py/gluon/restricted.py", line 224, in restricted > exec ccode in environment > File "/home/www-data/web2py/applications/mp/modules/plugins/feed/feed.rss", > line 12, in <module> > from gluon.serializers import rss > File "/home/www-data/web2py/gluon/serializers.py", line 172, in rss > description=safestr(feed,'description'), > File "/home/www-data/web2py/gluon/serializers.py", line 167, in safestr > return str(obj[key]).encode('utf-8', 'replace') if key in obj else default > UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position > 23: ordinal not in range(128) > > Error snapshot [image: help] > <https://192.168.0.5/admin/default/ticket/mp/192.168.0.109.2014-11-18.08-43-24.a4e11dac-b0ab-49b8-83b7-105ea1ba5ad2#> > > > <type 'exceptions.UnicodeEncodeError'>('ascii' codec can't encode > character u'\xf3' in position 23: ordinal not in range(128)) > when restore web2py/gluon/serializers.py to version 2.9.5 work fine My python version is 2.7.3 will relate to this? https://groups.google.com/forum/#!topic/web2py/8ZwVMKS69Sg My feed.rss page is: dd=dict(title="my feed", link=u"feed.example.com", description="carácter acentuado".decode('utf-8'), entries=[ dict(title="my feed", link=u"http://feed.example.com", description="my first feed") ]) from gluon.serializers import rss response.write(rss(dd), escape=False) response.headers['Content-Type']='application/rss+xml' El miércoles, 10 de septiembre de 2014 15:27:07 UTC+2, Massimo Di Pierro escribió: > > Sorry for the trouble here: > > I pushed this to trunk: > def rss(feed): > if not 'entries' in feed and 'items' in feed: > feed['entries'] = feed['items'] > def safestr(obj, key, default=''): > return str(obj[key]).encode('utf-8', 'replace') if key in obj else > default > > now = datetime.datetime.now() > rss = rss2.RSS2(title=safestr(feed,'title'), > link=safestr(feed,'link'), > description=safestr(feed,'description'), > lastBuildDate=feed.get('created_on', now), > items=[rss2.RSSItem( > title=safestr(entry,'title','(notitle)'), > link=safestr(entry,'link'), > description=safestr(entry,'description'), > pubDate=entry.get('created_on', now) > ) for entry in feed.get('entries', [])]) > return rss.to_xml(encoding='utf-8') > > please let me know if this fixes it. If not, please send me more details > about the feed you are trying to read. > > > On Tuesday, 9 September 2014 00:45:25 UTC-5, Капылов Данил wrote: >> >> Does not work. :-) >> >> Error ticket for "welcome"Ticket ID >> >> 127.0.0.1.2014-09-09.11-33-31.6f78e65a-5d28-410e-9111-55ded191b520 >> <type 'exceptions.AttributeError'> 'NoneType' object has no attribute >> 'encode'Версияweb2py™Version 2.9.9-stable+timestamp.2014.09.08.13.16.54 >> PythonPython 2.7.6: C:\Python27\python.exe (prefix: C:\Python27)Traceback >> >> 1. >> 2. >> 3. >> 4. >> 5. >> 6. >> 7. >> 8. >> 9. >> >> Traceback (most recent call last): >> File >> "C:\Users\�����\Documents\MEGAsync\Web2pyProject\Ad\web2py\gluon\restricted.py", >> line 221, in restricted >> exec ccode in environment >> File >> "C:\Users\�����\Documents\MEGAsync\Web2pyProject\Ad\web2py\applications\welcome\views\generic.rss", >> line 10, in <module> >> from gluon.serializers import rss}}{{=XML(rss(response._vars))}} >> File >> "C:\Users\�����\Documents\MEGAsync\Web2pyProject\Ad\web2py\gluon\serializers.py", >> line 168, in rss >> link=str((feed.get('link') or '').encode('utf-8', 'replace')), >> AttributeError: 'NoneType' object has no attribute 'encode' >> >> Error snapshot [image: help] >> <http://127.0.0.1:8000/admin/default/ticket/welcome/127.0.0.1.2014-09-09.11-33-31.6f78e65a-5d28-410e-9111-55ded191b520#> >> >> <type 'exceptions.AttributeError'>('NoneType' object has no attribute >> 'encode') >> >> inspect attributes >> Frames >> >> - >> >> *File >> >> C:\Users\�����\Documents\MEGAsync\Web2pyProject\Ad\web2py\gluon\restricted.py >> >> in restricted at line 221* код аргументы переменные >> - >> >> *File >> >> C:\Users\�����\Documents\MEGAsync\Web2pyProject\Ad\web2py\applications\welcome\views\generic.rss >> >> in <module> at line 10* код аргументы переменные >> - >> >> *File >> >> C:\Users\�����\Documents\MEGAsync\Web2pyProject\Ad\web2py\gluon\serializers.py >> >> in rss at line 168* код аргументы переменные >> Function argument list >> >> (feed={'message': <lazyT 'Hello World'>}) >> Code listing >> >> 163. >> 164. >> 165. >> 166. >> 167. >> 168. >> >> 169. >> 170. >> 171.<span style="color: >> >> >> ... > > -- 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.