函数

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在不使用时应解除引用。

函数的调用者负责获取数据所有权,并负责释放它。