golang 四种 base64 编码详解

创作人 Leo


编辑时间 Wed Nov 23,2022 at 15:03


// StdEncoding is the standard base64 encoding, as defined in
// RFC 4648.
var StdEncoding = NewEncoding(encodeStd)

// URLEncoding is the alternate base64 encoding defined in RFC 4648.
// It is typically used in URLs and file names.
var URLEncoding = NewEncoding(encodeURL)

// RawStdEncoding is the standard raw, unpadded base64 encoding,
// as defined in RFC 4648 section 3.2.
// This is the same as StdEncoding but omits padding characters.
var RawStdEncoding = StdEncoding.WithPadding(NoPadding)

// RawURLEncoding is the unpadded alternate base64 encoding defined in RFC 4648.
// It is typically used in URLs and file names.
// This is the same as URLEncoding but omits padding characters.
var RawURLEncoding = URLEncoding.WithPadding(NoPadding)

go语言提供了四种 base64 编码解析器

以 Raw 开头的没有对数据进行补白(padding),padding 就是我们看到的 base64 编码后面的 = ,有时候是一个有时候是两个

不推荐使用 Raw 开头的编码器,因为大部分程序都是补白的,对接第三方数据,或者提供接口可能会有问题

StdEncoding 和 URLEncoding 两者的区别是 URLEncoding 是文件系统以及URL安全的,他将 + 和 / 改成了 - 和 _

如果数据需要作为 url 的 query string 值存在,推荐使用 URLEncoding

参考:
Base64#Output_padding 维基百科
base64 编码


阅读:603
搜索
  • Linux 高性能网络编程库 Libevent 简介和示例 2467
  • Mac系统编译PHP7【20190929更新】 2261
  • Hadoop 高可用集群搭建 (Hadoop HA) 2094
  • zksync 和 layer2 2075
  • Linux 常用命令 1998
  • Hadoop Map Reduce 案例:好友推荐 1979
  • 安徽黄山游 1976
  • 小白鼠问题 1934
  • Hadoop 高可用YARN 配置 1884
  • Windows 安装Swoole 1875
简介
不定期分享软件开发经验,生活经验