键入脚本:Buffer.from('Мегафон').toString('base64') //0JzQtdCz0LDRhNC+0L0=
开始:decode, err := base64.URLEncoding.DecodeString("0JzQtdCz0LDRhNC+0L0=") //err : illegal base64 data at input byte 15
如果我尝试:base64.URLEncoding.EncodeToString([]byte("Мегафон")) //0JzQtdCz0LDRhNC-0L0=
也就是说,区别仅在于+和-。
我让它与v = strings.ReplaceAll(v, "+", "-")
一起工作,但这显然不是一个解决方案。
2条答案
按热度按时间m4pnthwp1#
您正在比较“标准”base64编码和URL安全的base64编码。要在Go语言中使用普通的base64编码,请不要使用
base64.URLEncoding.DecodeString
,而要使用base64.StdEncoding.DecodeString
。b4lqfgs42#
您使用标准base64编码对字符串进行了编码,并使用url-safe解码器进行了解码。
这会有用的。
如果你想安全地编码你的字符串url,使用
base64url
而不是base64
,然后你可以用base64.URLEncoding
来解码这个字符串。