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.
A hash table of attribute/value pairs, with both names and values fully-decoded; or null on error.
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 GLib.UriParamsIter.
The
paramsstring is assumed to still be%-encoded, but the returned values will be fully decoded. (Thus it is possible that the returned values may contain=orseparators, if the value was encoded in the input.) Invalid%-encoding is treated as with the GLib.UriFlags.PARSE_RELAXED rules forg_uri_parse(). (However, ifparamsis the path or query string from a GLib.Uri that was parsed without GLib.UriFlags.PARSE_RELAXED and GLib.UriFlags.ENCODED, then you already know that it does not contain any invalid encoding.)GLib.UriParamsFlags.WWW_FORM is handled as documented for
g_uri_params_iter_init().If GLib.UriParamsFlags.CASE_INSENSITIVE is passed to
flags, attributes will be compared case-insensitively, so a params stringattr=123&Attr=456will only return a single attribute–value pair,Attr=456. Case will be preserved in the returned attributes.If
paramscannot be parsed (for example, it contains twoseparatorscharacters in a row), thenerroris set andnullis returned.