code: public static void decodeTo(InputStream in, MultiMap<String> map, String charset, int maxLength, int maxKeys)
              throws IOException {
          if (charset == null) {
              if (ENCODING.equals(StandardCharsets.UTF_8))
                  decodeUtf8To(in, map, maxLength, maxKeys);
              else
                  decodeTo(in, map, ENCODING, maxLength, maxKeys);
          } else if (StringUtils.__UTF8.equalsIgnoreCase(charset))
              decodeUtf8To(in, map, maxLength, maxKeys);
          else if (StringUtils.__ISO_8859_1.equalsIgnoreCase(charset))
              decode88591To(in, map, maxLength, maxKeys);
          else if (StringUtils.__UTF16.equalsIgnoreCase(charset))
              decodeUtf16To(in, map, maxLength, maxKeys);
          else
              decodeTo(in, map, Charset.forName(charset), maxLength, maxKeys);
      }
docs: Decoded parameters to Map.
  
  @param in        the stream containing the encoded parameters
  @param map       the MultiMap to decode into
  @param charset   the charset to use for decoding
  @param maxLength the maximum length of the form to decode
  @param maxKeys   the maximum number of keys to decode
  @throws IOException if unable to decode input stream