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

paramsa `%`-encoded string containing attribute=value parameters
separatorsthe 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.
flagsflags to modify the way the parameters are handled.

Returns

A hash table of attribute/value pairs, with both names and values

fully-decoded; or null on error.

Throws

[UriException]