Ticket #1340: diff
| File diff, 1.2 kB (added by noam, 1 year ago) |
|---|
-
/home/noam/lib/python/CherryPy-2.2.1-py2.5.egg/cherrypy/filters/decodingfilter.py
old new 38 38 39 39 def decode(self, enc): 40 40 decodedParams = {} 41 def strdecode(s, enc): 42 if isinstance(s, unicode): 43 return s 44 else: 45 return s.decode(enc) 41 46 for key, value in cherrypy.request.params.items(): 42 47 if hasattr(value, 'file'): 43 48 # This is a file being uploaded: skip it 44 49 decodedParams[key] = value 45 50 elif isinstance(value, list): 46 51 # value is a list: decode each element 47 decodedParams[key] = [ v.decode(enc) for v in value]52 decodedParams[key] = [strdecode(v, enc) for v in value] 48 53 else: 49 54 # value is a regular string: decode it 50 decodedParams[key] = value.decode(enc)55 decodedParams[key] = strdecode(value, enc) 51 56 52 57 # Decode all or nothing, so we can try again on error. 53 58 cherrypy.request.params = decodedParams