1.1 --- a/WebStack/Helpers/Request.py Wed Aug 24 21:45:48 2005 +0000
1.2 +++ b/WebStack/Helpers/Request.py Wed Aug 24 21:47:23 2005 +0000
1.3 @@ -122,6 +122,8 @@
1.4 fields = {}
1.5
1.6 for field_name, field_values in field_items:
1.7 + field_name = decode_value(field_name, encoding)
1.8 +
1.9 if type(field_values) == type([]):
1.10 fields[field_name] = []
1.11 for field_value in field_values:
1.12 @@ -145,17 +147,17 @@
1.13 return get_body_field(field_str.value, encoding)
1.14 elif hasattr(field_str, "read"):
1.15 return field_str.read()
1.16 - elif encoding is not None:
1.17 + else:
1.18 + return decode_value(field_str, encoding)
1.19 +
1.20 +def decode_value(s, encoding):
1.21 + if encoding is not None:
1.22 try:
1.23 - return unicode(field_str, encoding)
1.24 + return unicode(s, encoding)
1.25 except UnicodeError:
1.26 - # NOTE: Hacks to permit graceful failure.
1.27 - try:
1.28 - return unicode(field_str, "iso-8859-1")
1.29 - except UnicodeError:
1.30 - return u""
1.31 - else:
1.32 - return field_str
1.33 + pass
1.34 + # NOTE: Hacks to permit graceful failure.
1.35 + return unicode(s, "iso-8859-1")
1.36
1.37 def get_fields_from_query_string(query_string, decoder):
1.38