'Parse the query string into Python structures. (Core)'

def process_query_string(self):

    try:
        p = httputil.parse_query_string(self.query_string, encoding=self.query_string_encoding)
    except UnicodeDecodeError:
        raise cherrypy.HTTPError(404, ('The    given    query    string    could    not    be    processed.    Query    strings    for    this    resource    must    be    encoded    with    %r.' % self.query_string_encoding))
    if (not py3k):
        for (key, value) in p.items():
            if isinstance(key, unicode):
                del p[key]
                p[key.encode(self.query_string_encoding)] = value
    self.params.update(p)
