函数
GLibconvert
声明 [src]
gchar*
g_convert (
const gchar* str,
gssize len,
const gchar* to_codeset,
const gchar* from_codeset,
gsize* bytes_read,
gsize* bytes_written,
GError** error
)
描述 [src]
将字符串从一个字符集转换为另一个字符集。
请注意,您应当使用 `g_iconv()` 进行流转换。尽管 `bytes_read` 可以返回有关部分字符的信息,但 g_convert_… 函数通常不适用于流转换。如果底层转换器维护内部状态,那么在对 g_convert()、`g_convert_with_iconv()` 或 g_convert_with_fallback() 的后续调用中,此状态不会保留。(这种情况的一个示例是 GNU C 转换器,用于 CP1255,在它不知道下一个字符不是可以与基本字符组合的标记之前,都不会发出基本字符。)
在许多平台上使用诸如 “//TRANSLIT” 的扩展可能不起作用(或者不能很好地起作用)。请考虑改用 `g_str_to_ascii()`。
参数
str
-
类型:
guint8
数组the string to convert.
数组的长度在 `len` 参数中指定。 数据归函数调用者所有。 len
-
类型:
gssize
字符串以字节为单位的长度,或者若是以 nul 结尾的字符串,则为 -1(请注意,某些编码可能允许在字符串内出现 nul 字节。在这种情况下,对 `len` 参数使用 -1 是不安全的)。
to_codeset
-
类型:
const gchar*
要将 `str` 转换为其中的字符集的名称。
数据归函数调用者所有。 该值是一个以 NUL 结尾的 UTF-8 字符串。 from_codeset
-
类型:
const gchar*
`str` 的字符集。
数据归函数调用者所有。 该值是一个以 NUL 结尾的 UTF-8 字符串。 bytes_read
-
类型:
gsize*
用于存储输入字符串中已成功转换的字节数的位置,或者为 `NULL`。即使转换成功,如果输入末尾有部分字符,这可能仍小于 `len`。如果出现错误 `G_CONVERT_ERROR_ILLEGAL_SEQUENCE`,则存储的值将是最后一个有效输入序列之后的字节偏移。
该参数将由函数设置。 该参数可以为 `NULL`。 bytes_written
-
类型:
gsize*
存储在输出缓冲区中的字节数(不包括终止符 nul)。
该参数将由函数设置。 该参数可以为 `NULL`。 error
-
类型:
GError **
可恢复错误 的返回位置。
该参数可以为 `NULL`。 如果返回位置不为 `NULL`,那么您必须将其初始化为一个 `NULL` `GError*`。 如果没有错误,该参数将由函数初始化并保留为 `NULL`。 如果出错,该参数将设置为新分配的 `GError`;调用者将拥有该数据的所权,并负责释放该数据。