介绍
Base64 是一种用于将二进制数据转换为文本格式的标准编码。 Base64 通常用于对 JSON、XML 和 HTML 等文本格式的二进制数据进行编码。 Base64 还用于对电子邮件附件中的二进制数据进行编码。
Go 中的 Base64 编码
Encoding 是将数据从一种格式转换为另一种格式的过程。在本例中,我们将二进制数据转换为文本。 base64
包提供了 EncodeToString
函数,用于将二进制数据编码为 Base64。
|
|
EncodeToString
函数将字节切片作为输入并返回字符串。 StdEncoding
变量是实现 Encoding
接口的 *Encoding
类型。 Encoding
接口提供 EncodeToString
功能。
Go 中的 Base64 解码
Decoding 是将数据从一种格式转换为另一种格式的过程。在本例中,我们将文本转换为二进制数据。 base64
包提供了 DecodeString
函数,用于将 Base64 解码为二进制数据。
DecodeString
函数将字符串作为输入并返回字节切片。 StdEncoding
变量是实现 Encoding
接口的 *Encoding
类型。 Encoding
接口提供 DecodeString
功能
|
|
URL编码与解码
base64
包提供 URLEncoding
变量,用于使用 URL 和文件名安全字母表进行 Base64 编码和解码。 URLEncoding
变量是实现 Encoding
接口的 *Encoding
类型。 Encoding
接口提供 EncodeToString
和 DecodeString
功能。
|
|
该程序的功能与前一个程序相同,但使用 URLEncoding
变量而不是 StdEncoding
变量。
原始编码和解码
base64
包提供 RawStdEncoding
变量,用于使用标准原始、未填充的 Base64 格式对 Base64 进行编码和解码。 RawStdEncoding
变量是实现 Encoding
接口的 *Encoding
类型。 Encoding
接口提供 EncodeToString
和 DecodeString
功能。
|
|
当对需要以文本格式存储的二进制数据进行编码时,原始编码和解码非常有用。程序的输出是:
|
|
示例:编码和解码 JSON 对象
base64
包提供了 EncodeToString
和 DecodeString
函数用于base64编码和解码。 json
包提供了 Marshal
和 Unmarshal
函数来编码和解码 JSON。 json
包还提供了 MarshalIndent
函数,用于使用缩进编码 JSON。
|
|
MarshalIndent
函数接受一个值并返回一个字节切片。 MarshalIndent
函数还采用前缀和缩进字符串。该前缀被添加到输出的每一行之前。缩进字符串用于缩进输出的每个级别。 MarshalIndent
函数对于使用缩进编码 JSON 非常有用。
Unmarshal
函数采用一个字节切片和一个指向值的指针。 Unmarshal
函数对 JSON 编码数据进行解码,并将结果存储在 v 指向的值中。如果 JSON 编码数据不是有效表示, Unmarshal
函数将返回错误v 指向的值。
Base64包中的其他函数
NewEncoder
- 返回一个新的 Base64 流编码器。写入返回的 writer,将 base64 数据编码为 w。NewDecoder
- 返回一个新的 Base64 流解码器。从 r 读取解码 Base64 数据到 w。NewEncoding
- 返回由给定字母表定义的新自定义编码,该编码必须是不包含填充字符“=”的 64 字节字符串。RawStdEncoding
- 返回标准原始、未填充的 base64 编码。
Base64 包中的其他类型
Encoding
- 表示 Base64 编码/解码方案,由 64 个字符的字母表定义。最常见的用法是通过标准预定义编码 StdEncoding 和 URLEncoding。CorruptInputError
- 报告输入不是有效的 Base64 数据的错误。