gpt4 book ai didi

go - 解码base64并将其编码为十六进制

转载 作者:数据小太阳 更新时间:2023-10-29 03:08:27 25 4
gpt4 key购买 nike

我有以下代码解码 base64,然后将其编码为十六进制。

doc_id := "Can35qPeFkm9Xgmp9+aj3g=="
base64_decode, err := base64.StdEncoding.DecodeString(doc_id)
if err != nil {
log.Fatal("error:", err)
}
base64_decoded := fmt.Sprintf("%q", base64_decode)
fmt.Printf("base_decoded %v\n", base64_decoded)



src := []byte(base64_decoded)
fmt.Println(src)
hex_encode := make([]byte, hex.EncodedLen(len(src)))
hex.Encode(hex_encode, src)
hex_encoded := fmt.Sprintf("%s", hex_encode)
fmt.Printf("hex_encoded %v", hex_encoded)

其中 doc_id 是 base64 格式。base64_decoded 是它的解码值。我必须将它编码为十六进制,所以我将它传递给 src。

问题是当我将标识符 base64_decoded 传递给 src 时,当我传递 base64_decoded 持有的值时,我得到了正确的答案。例如:如果我得到 base64_decoded 值作为 "\x11z\xc0[d~\xfcK\xb1\xf8\x11z\xc0[d~"如果我传递它的值为“\x11z\xc0[d~\xfcK\xb1\xf8\x11z\xc0[d~”,我得到正确答案 117ac05b647efc4bb1f8117ac05b647e

如果我传递变量 holding "\x11z\xc0[d~\xfcK\xb1\xf8\x11z\xc0[d~"我得到错误的答案 225c7831317a5c7863305b647e5c7866634b5c7862315c7866385c7831317a5c786332025b64

这个赋值有什么用 base64_decoded := fmt.Sprintf("%q", base64_decode)

我做错了什么

最佳答案

使用以下代码:

doc_id := "Can35qPeFkm9Xgmp9+aj3g=="
base64_decode, err := base64.StdEncoding.DecodeString(doc_id)
if err != nil {
log.Fatal("error:", err)
}
fmt.Println(hex.EncodeToString(base64_decode))

直接将base64_decode中的字节编码为hex。

调用 fmt.Sprintf("%q", base64_decode) 返回一个字符串,其中字节按照 Go 的字符串文字规则转义。一般情况下,返回字符串中的字节数不等于base64_decode中的字节数。例如,输入字节 0x11 被转义为四个字节 \x11

关于go - 解码base64并将其编码为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56938989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com