函数
GLibfilename_to_utf8
声明 [src]
gchar*
g_filename_to_utf8 (
const gchar* opsysstring,
gssize len,
gsize* bytes_read,
gsize* bytes_written,
GError** error
)
描述 [src]
将 GLib 为文件名使用编码中的字符串转换为 UTF-8 字符串。请注意,在 Windows 系统中 GLib 为文件名使用 UTF-8;其他平台中,此函数间接取决于 [当前语言环境][setlocale]。
输入字符串不能包含空字符,即使 len
参数为正。在字符串中找到空字符将导致错误 G_CONVERT_ERROR_ILLEGAL_SEQUENCE
。如果源编码不是 UTF-8,转换输出包含空字符,将设置错误 G_CONVERT_ERROR_EMBEDDED_NUL
,函数返回 NULL
。使用 g_convert()
生成可能包含嵌入空字符的输出。
参数
opsysstring
-
类型:
const gchar*
使用文件名编码的字符串。
数据由函数调用方所有。 该值是一个平台原生字符串,在 Unix 中使用首选的 OS 编码,在 Windows 系统中使用 UTF-8。 len
-
类型:
gssize
字符串的长度,或 -1(如果字符串以空字符结尾)(请注意,某些编码允许在字符串的中间出现空字节。在这种情况下,为
len
参数使用 -1 是不安全的)。 bytes_read
-
类型:
gsize*
存储在输入字符串中成功转换字节数的位置,或
NULL
。即使转换成功,如果输入的结尾有部分字符,则这个值也可能小于len
。如果发生错误G_CONVERT_ERROR_ILLEGAL_SEQUENCE
,存储的值将是最后一个有效输入序列之后的字节偏移量。此参数将由函数设置。 该参数可以是 NULL
。 bytes_written
-
类型:
gsize*
存储在输出缓冲区中的字节数(不包括终止空字符)。
此参数将由函数设置。 该参数可以是 NULL
。 error
-
类型:
GError **
可恢复错误 的返回位置。
该参数可以是 NULL
。如果返回位置不为 NULL
,则必须将其初始化为NULL
GError*
。如果没有错误,该参数将由函数初始化并赋值为 NULL
。如果出错,该参数将被设置为新分配的 GError
;调用方将拥有该数据的权限并负责释放它。