fully-decoded; or null on error.
Uri.parseParams
string[string] parseParams(string params, string separators, glib.types.UriParamsFlags flags)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 [glib.uri.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 [glib.uri_params_iter.UriParamsIter.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.
Parameters
params | a `%`-encoded string containing attribute=value parameters |
separators | 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 | flags to modify the way the parameters are handled. |