函数
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,那么你必须将其初始化为NULLGError*。如果没有任何错误,则参数将被函数初始化并设置为 NULL。在出现错误的情况下,参数将被设置为一个新分配的 GError;调用者将拥有数据的权限,并负责释放数据。