Golang中四种Base64编码方式
-
StdEncoding: 常规编码
base64.StdEncoding.EncodeToString([]byte("Hello world. 你好,世界!"))
// SGVsbG8gd29ybGQuIOS9oOWlve+8jOS4lueVjO+8gQ== -
URLEncoding: URL safe 编码
// 相比常规编码,url safe编码会将"+"和"/"分别替换成"-"和"_"
base64.URLEncoding.EncodeToString([]byte("Hello world. 你好,世界!"))
// SGVsbG8gd29ybGQuIOS9oOWlve-8jOS4lueVjO-8gQ== -
RawStdEncoding: 常规编码,末尾不补 =
// Raw相比于非Raw,末尾不会自动填充"="
// 非Raw的base64编码字符串长度是能被4整除的,如果计算过程中发现字符串不能被4整除,会在末尾自动填充"="
base64.RawStdEncoding.EncodeToString([]byte("Hello world. 你好,世界!"))
// SGVsbG8gd29ybGQuIOS9oOWlve+8jOS4lueVjO+8gQ -
RawURLEncoding: URL safe 编码,末尾不补 =
base64.RawURLEncoding.EncodeToString([]byte("Hello world. 你好,世界!"))
// SGVsbG8gd29ybGQuIOS9oOWlve-8jOS4lueVjO-8gQ