函数

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;调用方将拥有该数据的权限并负责释放它。

返回值

类型: gchar*

转换后的字符串,或在出现错误时返回 NULL

函数调用方拥有数据的所有权,并负责释放它。
该值是一个 NUL 终止的 UTF-8 字符串。