UrlEncoded.decodeTo(_uri.getQuery(), _parameters,encoding);
UrlEncoded.decodeTo(_uri.getRawQuery(), _parameters,encoding);
    private void extractParameters()    {        if (_paramsExtracted) return;        _paramsExtracted = true;        if (_parameters == null) _parameters = new MultiMap(16);        // Handle query string        String encoding = getCharacterEncoding();        if (encoding == null)        {            // No encoding, so use the existing characters.            // TODO - UTF-8 is correct ????            encoding = StringUtil.__UTF8;            if (_uri!=null && _uri.getQuery()!=null)                UrlEncoded.decodeTo(_uri.getQuery(), _parameters,encoding);        }        else if (_uri!=null && _uri.getRawQuery()!=null)        {            UrlEncoded.decodeTo(_uri.getRawQuery(), _parameters, encoding);        }                // handle any _content.        String content_type = getContentType();        if (content_type != null && content_type.length() > 0)        {            content_type = HttpFields.valueParameters(content_type, null);                        if (MimeTypes.FORM_ENCODED.equalsIgnoreCase(content_type) && HttpMethods.POST.equals(getMethod()))            {                int content_length = getContentLength();                if (content_length > 0)                {                    try                    {                        // TODO limit size                        // TODO directly access byte array?                        InputStream in = getInputStream();                                               // Add form params to query params                        UrlEncoded.decodeTo(in, _parameters, encoding);                    }                    catch (IOException e)                    {                        if (Log.isDebugEnabled())                            Log.warn(e);                        else                            Log.warn(e.toString());                    }                }            }        }    }