函数
GLibUriunescape_bytes
since: 2.66
声明 [src]
GBytes*
g_uri_unescape_bytes (
const char* escaped_string,
gssize length,
const char* illegal_characters,
GError** error
)
描述 [src]
将转义字符串的一个片段转义为二进制数据。
注意,与 g_uri_unescape_string() 相比,这允许输出中出现空字节。
如果 illegal_characters
中的任何字符在 escaped_string
中作为转义字符出现,则这是一个错误,并且会返回 NULL
。当您想要避免在转义的路径元素中展开斜杠等字符时,这非常有用,这些字符可能会在路径处理中引起混淆。
从 2.66 版本起可用
参数
escaped_string
-
类型:
const char*
一个 URI 转义字符串。
这些数据由函数的调用者拥有。 值是一个以空字符终止的 UTF-8 字符串。 length
-
类型:
gssize
要转义的
escaped_string
的长度(以字节为单位),如果它是空终止的,则为-1
。 illegal_characters
-
类型:
const char*
不允许出现的非法字符字符串,或
NULL
。参数可以是 NULL
。这些数据由函数的调用者拥有。 值是一个以空字符终止的 UTF-8 字符串。 error
-
类型:
GError **
一个可恢复错误的返回位置。
参数可以是 NULL
。如果返回位置不为 NULL
,则必须将其初始化为NULL
GError*
。如果没有错误,则函数会接受初始化到 NULL
的参数。如果出现错误,参数将设置为一个新的分配的 GError
;调用者将接管数据,并负责释放它。
返回值
类型: GBytes
去除转义后的escaped_string
版本或在错误情况下NULL
(如果解码失败,使用G_URI_ERROR_FAILED
错误代码)。返回的GBytes
在不使用时应解除引用。
函数的调用者负责获取数据所有权,并负责释放它。 |