将数据转换为go中的base64编码
我是编程语言新手,我的代码中有这个场景。 下面是我的示例代码:将数据转换为go中的base64编码,go,base64,Go,Base64,我是编程语言新手,我的代码中有这个场景。 下面是我的示例代码: a := genreAPI{Genre{"Pop"}, Genre{"Rock"}} fmt.Println("Value of a :", a) 当前输出为:a:[{Pop}{Rock}] 我如何实现这样的输出: a:[{UG9w}{Um9jaw==}]的值 哪个是base64编码?我不确定文档中到底有什么不清楚。它不仅有一个清晰的说明,说明了该方法正在做什么,而且还有一个示例 package main import (
a := genreAPI{Genre{"Pop"}, Genre{"Rock"}}
fmt.Println("Value of a :", a)
当前输出为:a:[{Pop}{Rock}]
我如何实现这样的输出:
a:[{UG9w}{Um9jaw==}]的值
哪个是base64编码?我不确定文档中到底有什么不清楚。它不仅有一个清晰的说明,说明了该方法正在做什么,而且还有一个示例
package main
import (
"encoding/base64"
"fmt"
)
func main() {
data := []byte("Pop")
str := base64.StdEncoding.EncodeToString(data)
fmt.Println(str) // UG9w
}
通过为您的类型提供String()
方法,您可以自定义打印函数的输出。对于整个类型
或仅针对name变量
例如:
package main
import (
"encoding/base64"
"fmt"
)
type Base64String string
func (b Base64String) String() string {
return base64.StdEncoding.EncodeToString([]byte(b))
}
type Genre struct {
Name Base64String
}
func main() {
a := []Genre{Genre{"Pop"}, Genre{"Rock"}}
fmt.Println(a) // prints [{UG9w} {Um9jaw==}]
fmt.Println(string(a[0].Name)) // prints Pop
}
看,我真的不理解go文档,先生,你能给我一个工作示例吗?当我尝试使用go文档时,encoder:=base64.NewEncoder(base64.StdEncoding,os.Stdout)encoder.Write(a)encoder.Close()
我遇到一个错误,无法将(genreAPI类型)用作类型[]将参数中的字节写入编码器。写入
示例数据为bytedata:=[]字节(“Pop”)
而我的数据是这种格式的a:=genreAPI{Genre{Genre{Pop},Genre{Rock}
当我执行程序时,它给出了一个错误无法使用(genreAPI类型)作为类型[]将参数中的字节写入编码器。Write
@LeViNcE:您可以尝试在此处添加称为“编程”的内容:当然,您不能在EncodeToString中添加任何无意义的内容,尤其是因为您不希望所有内容都是base64编码的,而只希望对类型的内容进行编码。因此,只需将EncodeToString应用于您想要编码的内容,因为这似乎是字符串,您可以轻松地将它们转换为适合编码的[]字节。感谢@tomasz的回答,先生,还有一个问题,在您给定的示例中,Name Base64String
是流派
的结构,而在我的例子中,我使用Name String
是因为数据来自数据库,当我使用Base64String
时,没有从数据库获取数据,而当我使用String
时,输出不是base64encode。如何使用Genre
struct上的Name String
字段实现Base64编码输出。非常感谢。