函数
GLibfilename_from_utf8
声明 [src]
gchar*
g_filename_from_utf8 (
const gchar* utf8string,
gssize len,
gsize* bytes_read,
gsize* bytes_written,
GError** error
)
说明 [src]
将字符串从 UTF-8 转换为 GLib 用于文件名编码。请注意,在 Windows 中,GLib 使用 UTF-8 作为文件名的编码;在其他平台上,此函数间接依赖于 [当前区域设置][setlocale]。
输入字符串不得包含空字符,即使 len
参数为正。如果在字符串内部找到空字符,将导致错误 G_CONVERT_ERROR_ILLEGAL_SEQUENCE
。如果文件名编码不是 UTF-8,并且转换输出包含空字符,则设置错误 G_CONVERT_ERROR_EMBEDDED_NUL
,函数返回 NULL
。
参数
utf8string
-
类型:
const gchar*
UTF-8 编码字符串
数据由函数调用方所有。 该值是以 NULL 结尾的 UTF-8 字符串。 len
-
类型:
gssize
字符串长度,如果字符串以空终止,则为 -1。
bytes_read
-
类型:
gsize*
存储已成功转换的输入字符串中的字节数的位置,或者为
NULL
。即使转换成功,如果输入末尾有部分字符,它也可能小于len
。如果出现错误G_CONVERT_ERROR_ILLEGAL_SEQUENCE
,则存储的值将是最后一个有效输入序列之后的字节偏移量。该参数将由函数设置。 该参数可以为 NULL
。 bytes_written
-
类型:
gsize*
存储在输出缓冲区中的字节数(不包括终止空字节)。
该参数将由函数设置。 该参数可以为 NULL
。 error
-
类型:
GError **
可恢复错误 的返回位置。
该参数可以为 NULL
。如果返回位置不是 NULL
,则必须将其初始化为NULL
GError*
。如果不存在错误,该参数将由函数初始化并保留为 NULL
。如果出现错误,该参数将设置为新分配的 GError
;调用方将获取数据的的所有权,并负责释放它。