parseParams
Many URI schemes include one or more attribute/value pairs as part of the URI value. This method can be used to parse them into a hash table. When an attribute has multiple occurrences, the last value is the final returned value. If you need to handle repeated attributes differently, use #GUriParamsIter.
The @params string is assumed to still be %
-encoded, but the returned values will be fully decoded. (Thus it is possible that the returned values may contain =
or @separators, if the value was encoded in the input.) Invalid %
-encoding is treated as with the %G_URI_FLAGS_PARSE_RELAXED rules for g_uri_parse(). (However, if @params is the path or query string from a #GUri that was parsed without %G_URI_FLAGS_PARSE_RELAXED and %G_URI_FLAGS_ENCODED, then you already know that it does not contain any invalid encoding.)
%G_URI_PARAMS_WWW_FORM is handled as documented for g_uri_params_iter_init().
If %G_URI_PARAMS_CASE_INSENSITIVE is passed to @flags, attributes will be compared case-insensitively, so a params string attr=123&Attr=456
will only return a single attribute–value pair, Attr=456
. Case will be preserved in the returned attributes.
If @params cannot be parsed (for example, it contains two @separators characters in a row), then @error is set and null is returned.
Return
A hash table of attribute/value pairs, with both names and values
fully-decoded; or null on error.
Since
2.66
Parameters
a %
-encoded string containing attribute=value
parameters
the length of @params, or -1
if it is nul-terminated
the separator byte character set between parameters. (usually &
, but sometimes ;
or both &;
). Note that this function works on bytes not characters, so it can't be used to delimit UTF-8 strings for anything but ASCII characters. You may pass an empty set, in which case no splitting will occur.
flags to modify the way the parameters are handled.