Go 代码报错:'cannot use payload (variable of type []byte) as type string in argument to Encode'
代码中的报错是在 Encode 函数中,因为 Encode 函数的参数是一个 string 类型的字符串,而在函数中却将其转换为 []byte 类型的 payloadBytes,然后传递给 Crypt 函数进行加密,得到的结果是 []byte 类型的 encodedBytes。但是,在调用 base64.StdEncoding.EncodeToString 函数时,它的参数需要是 string 类型的,而不是 []byte 类型的。因此,需要将 encodedBytes 转换为 string 类型的 bdata,然后将其返回。可以使用 string() 函数将 []byte 类型转换为 string 类型,修改为如下代码:
func Encode(src string) string {
payloadBytes := []byte(src)
encodedBytes := Crypt(XorCipher, XorKey[0], payloadBytes)
bdata := base64.StdEncoding.EncodeToString([]byte(encodedBytes))
return string(bdata)
}
原文地址: https://www.cveoy.top/t/topic/lP46 著作权归作者所有。请勿转载和采集!