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