diff options
-rw-r--r-- | paste/request.py | 11 | ||||
-rw-r--r-- | paste/wsgiwrappers.py | 3 |
2 files changed, 11 insertions, 3 deletions
diff --git a/paste/request.py b/paste/request.py index f0d91c1..8d5e5c3 100644 --- a/paste/request.py +++ b/paste/request.py @@ -140,7 +140,7 @@ def parse_dict_querystring(environ): environ['paste.parsed_dict_querystring'] = (multi, source) return multi -def parse_formvars(environ, include_get_vars=True): +def parse_formvars(environ, include_get_vars=True, encoding=None, errors=None): """Parses the request, returning a MultiDict of form variables. If ``include_get_vars`` is true then GET (query string) variables @@ -182,9 +182,16 @@ def parse_formvars(environ, include_get_vars=True): environ['CONTENT_TYPE'] = '' else: input = environ['wsgi.input'] + kwparms = {} + if six.PY3: + if encoding: + kwparms['encoding'] = encoding + if errors: + kwparms['errors'] = errors fs = cgi.FieldStorage(fp=input, environ=environ, - keep_blank_values=1) + keep_blank_values=1, + **kwparms) environ['QUERY_STRING'] = old_query_string if fake_out_cgi: environ['CONTENT_TYPE'] = old_content_type diff --git a/paste/wsgiwrappers.py b/paste/wsgiwrappers.py index 7b8f6de..674054f 100644 --- a/paste/wsgiwrappers.py +++ b/paste/wsgiwrappers.py @@ -199,7 +199,8 @@ class WSGIRequest(object): GET = property(GET, doc=GET.__doc__) def _POST(self): - return parse_formvars(self.environ, include_get_vars=False) + return parse_formvars(self.environ, include_get_vars=False, + encoding=self.charset, errors=self.errors) def POST(self): """Dictionary-like object representing the POST body. |