函数
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
-
类型:
gssize
params 的长度,如果它以空终止,则为
-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.
函数的调用者将负责数据,并负责释放它。 |