函数
GLibUriparse_params
自: 2.66
声明 [源]
GHashTable*
g_uri_parse_params (
const gchar* params,
gssize length,
const gchar* separators,
GUriParamsFlags flags,
GError** error
)
描述 [源]
许多 URI 方案中将一个或多个属性/值对作为 URI 值的一部分。此方法可用来将它们解析到一个哈希表中。当一个属性有多个出现时,最后一个值是最终返回的值。如果您需要以不同的方式处理重复属性,请使用 GUriParamsIter。
params 字符串假定仍然 %-编码,但返回的值将被完全解码。(因此,返回的值可能包含 = 或 分隔符,如果值在输入时被编码。)无效的 %-编码将被视为 g_uri_parse() 的 G_URI_FLAGS_PARSE_RELAXED 规则处理。(但是,如果 params 是未使用 G_URI_FLAGS_PARSE_RELAXED 和 G_URI_FLAGS_ENCODED 解析的 GUri 的路径或查询字符串,那么您已经知道它不包含任何无效编码。)
G_URI_PARAMS_WWW_FORM 被处理,如 g_uri_params_iter_init() 文档中所述。
如果将 G_URI_PARAMS_CASE_INSENSITIVE 传递给 flags,属性将不区分大小写进行比较,因此 params 字符串 attr=123&Attr=456 将只返回一个属性-值对,Attr=456。在返回的属性中保留大小写。
如果无法解析 params(例如,它连续包含两个 分隔符 字符),则设置 error 并返回 NULL。
自: 2.66
参数
params-
类型:
const gchar*包含
attribute=value参数的%-编码字符串。数据由函数的调用者拥有。 该值是空终止的 UTF-8 字符串。 length-
类型:
gssizeparams 的长度,如果它以空终止,则为
-1。 separators-
类型:
const gchar*参数之间的分隔字节字符集。(通常是
&,但有时是;或两者都是&;)。注意,此函数在字节上工作而不是在字符上,因此它不能用于除了 ASCII 字符以外的任何东西的 UTF-8 字符串。您可以通过空的集合传递,在这种情况下不会发生拆分。数据由函数的调用者拥有。 该值是空终止的 UTF-8 字符串。 flags-
类型:
GUriParamsFlags标志以修改处理参数的方式。
error-
类型:
GError **可恢复错误的返回位置。
参数可以是 NULL。如果返回位置不是 NULL,则必须将其初始化为NULL的GError*。如果没有错误,函数将保持参数初始化为 NULL。发生错误时,参数将被设置为新的 GError分配;调用者将负责数据的所有权,并负责释放它。
返回值
类型: GHashTable
A hash table of attribute/value pairs, with both names and values
fully-decoded; or `NULL` on error.
| 函数的调用者将负责数据,并负责释放它。 |