carlo
unread,Jan 15, 2011, 5:49:02 AM1/15/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to web2py-users
I have this code:
myrows=[]
for r in range(riga+1,nrows):
myrow=[]
for c in range(ncols):
cell=mysheet.cell_value(r,c) ##reading some text, cell is
unicode object
myrow.append(cell)
myrows.append(myrow)
idx=range(len(colnames)) ##colnames=['label1','label2','label3']
colnames=[item.replace('.','_') for item in colnames]
records=[]
for row in myrows: records.append(TAG['item'](*[TAG[colnames[i]]
(row[i]) for i in idx]))
response.headers['Content-Type']='application/xml'
return str(TAG['root'](*records))
As commented above cell is unicode object so myrows is a list of lists
of unicode objects.
If cell is an ascii char everything is ok; if it is not I get:
Traceback (most recent call last):
File "C:\Python26\web2py\gluon\restricted.py", line 188, in
restricted
exec ccode in environment
File "c:/Python26/web2py/applications/xcel2xml/controllers/
default.py", line 334, in <module>
File "C:\Python26\web2py\gluon\globals.py", line 95, in <lambda>
self._caller = lambda f: f()
File "c:/Python26/web2py/applications/xcel2xml/controllers/
default.py", line 255, in step44
return gen_xml(nomefile,riga,images)
File "c:/Python26/web2py/applications/xcel2xml/controllers/
default.py", line 296, in gen_xml
return str(TAG['root'](*records))
File "C:\Python26\web2py\gluon\html.py", line 797, in __str__
return self.xml()
File "C:\Python26\web2py\gluon\html.py", line 780, in xml
(fa, co) = self._xml()
File "C:\Python26\web2py\gluon\html.py", line 771, in _xml
self.components])
File "C:\Python26\web2py\gluon\html.py", line 110, in xmlescape
return data.xml()
File "C:\Python26\web2py\gluon\html.py", line 780, in xml
(fa, co) = self._xml()
File "C:\Python26\web2py\gluon\html.py", line 771, in _xml
self.components])
File "C:\Python26\web2py\gluon\html.py", line 110, in xmlescape
return data.xml()
File "C:\Python26\web2py\gluon\html.py", line 790, in xml
return '<%s%s>%s</%s>' % (self.tag, fa, co, self.tag)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
5: ordinal not in range(128)
From Inspect Attributes:
args= ('ascii', 'label\xc3\xa0', 5, 6, 'ordinal not in range(128)')
And from Variables:
Variables
fa ''
self <gluon.html.__tag__ object at 0x033D2490>
self.tag u'label'
co 'label\xc3\xa0'
args ('ascii', 'label\xc3\xa0', 5, 6, 'ordinal not in range(128)')
the string raising the error is "labelà" and I see from Variables that
it was encoded in utf-8 by xml I think.
The original string was "label\xe0" (as I said a unicode string).
Any suggestion? This is driving me crazy..thank you
carlo