函数

GLiblocale_to_utf8

声明 [源代码]

gchar*
g_locale_to_utf8 (
  const gchar* opsysstring,
  gssize len,
  gsize* bytes_read,
  gsize* bytes_written,
  GError** error
)

描述 [源代码]

将使用 [当前语言环境][setlocale] 的 C 运行时字符串编码的字符串转换成 UTF-8 字符串。

如果源编码不是 UTF-8 且转换输出包含空字符,则会设置错误 G_CONVERT_ERROR_EMBEDDED_NUL 且函数返回 NULL。如果源编码是 UTF-8,则嵌入的空字符会被视为 G_CONVERT_ERROR_ILLEGAL_SEQUENCE 错误,以向后兼容此库的早期版本。使用 g_convert() 生成可能包含嵌入空字符的输出。

参数

opsysstring

类型: guint8 数组

当前语言环境的编码格式字符串。在 Windows 中,这意味着系统代码页。

数组的长度在 len 参数中指定。
数据由函数的调用者拥有。
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 字符串。