函数

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;调用方将获取数据的的所有权,并负责释放它。

返回值

类型: gchar*

          The converted string, or `NULL` on an error.
函数调用方获取数据的所权,并负责释放它。
该值是平台原生字符串,在 Unix 中使用首选的操作系统编码,在 Windows 中使用 UTF-8。