函数
GLibconvert_with_fallback
声明 [源代码]
gchar*
g_convert_with_fallback (
const gchar* str,
gssize len,
const gchar* to_codeset,
const gchar* from_codeset,
const gchar* fallback,
gsize* bytes_read,
gsize* bytes_written,
GError** error
)
说明 [源代码]
将字符串从一个字符集转换为另一个字符集,可能包括输出中不可表示字符的回退序列。请注意,不能保证对 fallback
中的回退序列进行的指定将得到遵从。一些系统可能会在其 iconv()
函数中从 from_codeset
到 to_codeset
进行近似转换,在这种情况下,GLib 将仅返回该近似转换。
请注意,应使用 g_iconv()
进行流转换。尽管 bytes_read
可以返回有关部分字符的信息,但 g_convert_…
函数通常不适合用于流。如果底层转换器维护内部状态,则在对 g_convert()
、g_convert_with_iconv()
或 g_convert_with_fallback()
进行连续调用时不会保留此状态。(一个示例是 GNU C 专为 CP1255 设计的转换器,在它知道下一个字符不是可与基字符组合的标记之前不会发出基字符。)
参数
str
-
类型:
guint8
the string to convert.
该数组的长度在 len
参数中指定。数据由函数的调用者拥有。 len
-
类型:
gssize
字符串的字节长度,如果字符串以空值终止,则为 -1(请注意,一些编码可能允许空值字节出现在字符串中。在这种情况下,为
len
参数使用 -1 是不安全的)。 to_codeset
-
类型:
const gchar*
要将
str
转换为其中的字符集的名称。数据由函数的调用者拥有。 该值为 NUL 终止的 UTF-8 字符串。 from_codeset
-
类型:
const gchar*
str
的字符集。数据由函数的调用者拥有。 该值为 NUL 终止的 UTF-8 字符串。 fallback
-
类型:
const gchar*
UTF-8 字符串,用于替换目标编码中不存在的字符。(该字符串必须能在目标编码中表示)。如果为
NULL
,则目标编码中不存在的字符将表示为 Unicode 转义字符 \uxxxx 或 \Uxxxxyyyy。数据由函数的调用者拥有。 该值为 NUL 终止的 UTF-8 字符串。 bytes_read
-
类型:
gsize*
用于存储成功转换的输入字符串中的字节数的位置,也可以为
NULL
。即使转换成功,如果输入的末尾有部分字符,该值也可能小于len
。该参数将由函数设置。 该参数可以为 NULL
。 bytes_written
-
类型:
gsize*
存储在输出缓冲区中的字节数(不包括终止 nul)。
该参数将由函数设置。 该参数可以为 NULL
。 error
-
类型:
GError **
可恢复错误 的返回位置。
该参数可以为 NULL
。如果返回位置不为 NULL
,则必须将它初始化为NULL
GError*
。如果没有错误,该参数将由函数初始化为 NULL
。如果出错,该参数将设置为新分配的 GError
;调用者将拥有该数据的所有权,并负责释放它。