Base 64 编码常用于电子邮件,将 8 位字节序列转换为更长的 ASCII 可见字符序列。 该编码标准定义于互联网 RFC242045 与 RFC 4648。本节介绍用于 Base 64 编码与解码的相关函数。
该函数将 beg 至 end 的区域转换为 Base 64 编码,返回编码后文本的长度。 若区域中存在多字节字符,函数将报错;即在多字节缓冲区中,区域只能包含 ASCII 字符或原始字节。
通常,该函数会在编码文本中插入换行符以避免行过长。但若可选参数 no-line-break
为非 nil,则不插入换行,输出为单一长行。
该函数与 base64-encode-region 类似,但按照 RFC 4648 实现适用于 URL 的 Base 64 变体,
且不会在编码文本中插入换行符,输出为单一长行。
若可选参数 no-pad 为非 nil,函数不会生成填充符(=)。
该函数将字符串 string 转换为 Base 64 编码,返回包含编码结果的字符串。
与 base64-encode-region 相同,若字符串中存在多字节字符将报错。
通常,该函数会在编码文本中插入换行符以避免行过长。但若可选参数 no-line-break
为非 nil,则不插入换行,结果为单一长字符串。
与 base64-encode-string 类似,但生成适用于 URL 的 Base 64 变体,
且不插入换行符,结果为单一长行。
若可选参数 no-pad 为非 nil,函数不生成填充符。
该函数将 beg 至 end 区域的 Base 64 编码转换为对应解码文本, 返回解码后文本的长度。
解码函数会忽略编码文本中的换行符。
若可选参数 base64url 为非 nil,则填充符为可选,
并使用 URL 专用的 Base 64 编码变体。
若可选参数 ignore-invalid 为非 nil,则所有无法识别的字符均被忽略。
该函数将字符串 string 从 Base 64 编码转换为对应解码文本, 返回包含解码结果的单字节字符串。
解码函数会忽略编码文本中的换行符。
若可选参数 base64url 为非 nil,则填充符为可选,
并使用 URL 专用的 Base 64 编码变体。
若可选参数 ignore-invalid 为非 nil,则所有无法识别的字符均被忽略。
RFC 是 请求评议(Request for Comments)的缩写,是一类带编号的互联网说明文档,用于描述技术标准。 RFC 通常由技术专家自主撰写,行文风格注重实用、以实践经验为依据。