函数
GLibbase64_encode_step
始于:2.12
声明 [源代码]
gsize
g_base64_encode_step (
const guchar* in,
gsize len,
gboolean break_lines,
gchar* out,
gint* state,
gint* save
)
描述 [源代码]
以增量方式将一系列二进制数据编码成其 Base-64 字符串化表示形式。通过多次调用此函数,你可以分块转换数据,从而避免在内存中保存全部编码数据。
转换完所有数据后,你必须调用 g_base64_encode_close()
来刷新已保存的状态。
输出缓冲区必须足够大,以容纳将要写入的所有数据。根据 base64 编码的方式,至少需要:(len
/ 3 + 1) * 4 + 4 个字节(如果状态不为零,可能需要 + 4)。如果你启用换行,则至少需要:(len
/ 3 + 1) * 4 + 4) / 76 + 1 个字节的额外空间。
通常在向电子邮件中放置 base64 编码的数据时使用 break_lines
。它会在第 76 列换行,而不是将所有文本放在同一行。这样可以避免电子邮件系统中出现长行问题。但请注意,它使用 LF
字符换行,而不是 CR LF
序列,因此结果不能直接传递给 SMTP 或某些其他协议。
可用始于:2.12